vuejs2.0子组件改变父组件的数据实例


Posted in Javascript onMay 10, 2017

在vue2.0之后的版本中,不允许子组件直接改变父组件的数据,在1.0的版本中可以这样操作的,但是往往项目需求需要改变父组件的数据,2.0也是可一个,区别是,当我们把父元素的数据给子组件时,需要传一个对象,子组件通过访问对象中的属性操作数据,下面是演示

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script type="text/javascript" src="vue.js"></script>  
  <script type="text/javascript">
    window.onload = function(){
      var app = new Vue({
      el:'#box',
      data:{
        myData:{
          info:'父组件信息'
        }
      },
      components:{
        'v-com':{
          props:['data'],
          template:'#tpl',
          methods:{
            change(){
              this.data.info = 'change info'
            }
          }
        }
      }
    })
    }
  </script>
</head>
<body>
  <!-- 子组件改变父组件的数据 -->
  <div id="box">
    <div>
      <p>{{myData.info}}</p>
      <v-com :data ="myData"></v-com>
    </div>
  </div>

  <!-- 模板 -->
  <template id="tpl">
    <div>
      <button @click="change">change</button>
      <p>{{data.info}}</p>
    </div>
  </template>

</body>
</html>

这种是同步改变数据,就是说子组件的数据改变,父组件数据也跟着改变,下面展示非同步的情况

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script type="text/javascript" src="vue.js"></script>  
  <script type="text/javascript">
    window.onload = function(){
      var app = new Vue({
      el:'#box',
      data:{
        myData:'父组件信息'
      },
      components:{
        'v-com':{
          data() {
            return {
              childData:''
            }
          },
          props:['data'],
          // dom渲染完毕
          mounted(){
            this.childData = this.data
          },
          template:'#tpl',
          methods:{
            change(){
              this.childData = 'change info'
            }
          }
        }
      }
    })
    }
  </script>
</head>
<body>
  <!-- 子组件改变父组件的数据,不同步 -->
  <div id="box">
    <div>
      <p>{{myData}}</p>
      <v-com :data ="myData"></v-com>
    </div>
  </div>

  <!-- 模板 -->
  <template id="tpl">
    <div>
      <button @click="change">change</button>
      <p>{{childData}}</p>
    </div>
  </template>

</body>
</html>

这里巧妙的通过mounted这个方法进行了中转,实现了想要的效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
设置checkbox为只读(readOnly)的两种方式
Oct 11 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
Dec 20 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
Oct 20 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
Apr 24 Javascript
JavaScript事件用法浅析
Oct 31 Javascript
浅谈JavaScript的函数及作用域
Dec 30 Javascript
JavaScript数据结构之二叉树的查找算法示例
Apr 13 Javascript
微信小程序url与token设置详解
Sep 26 Javascript
代码详解Vuejs响应式原理
Dec 20 Javascript
在小程序中使用Echart图表的示例代码
Aug 02 Javascript
jQuery实现鼠标移入显示蒙版效果
Jan 11 jQuery
原生js实现九宫格拖拽换位
Jan 26 Javascript
详解vue.js2.0父组件点击触发子组件方法
May 10 #Javascript
详解vue-router 2.0 常用基础知识点之router-link
May 10 #Javascript
JavaScript使用readAsDataURL读取图像文件
May 10 #Javascript
angular.js指令中的controller、compile与link函数的不同之处
May 10 #Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
May 10 #Javascript
详解vue-router 2.0 常用基础知识点之router.push()
May 10 #Javascript
JavaScript通过filereader接口读取文件
May 10 #Javascript
You might like
一个简单的域名注册情况查询程序
2006/10/09 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
2013/06/13 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
JavaScript 程序编码规范
2010/11/23 Javascript
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
intro.js 页面引导简单用法 分享
2013/08/06 Javascript
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
2015/06/10 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
浅谈js键盘事件全面控制
2016/12/01 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
原生JavaScript实现todolist功能
2018/03/02 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
2018/08/28 Javascript
9102年webpack4搭建vue项目的方法步骤
2019/02/20 Javascript
在vant中使用时间选择器和popup弹出层的操作
2020/11/04 Javascript
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
python 随机数使用方法,推导以及字符串,双色球小程序实例
2017/09/12 Python
浅谈Python在pycharm中的调试(debug)
2018/11/29 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
Python安装selenium包详细过程
2019/07/23 Python
详解Python模块化编程与装饰器
2021/01/16 Python
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
2014/03/16 面试题
公务员诚信承诺书
2014/05/26 职场文书
庆国庆活动总结
2014/08/28 职场文书
计划生育工作汇报
2014/10/28 职场文书
2014年销售助理工作总结
2014/12/01 职场文书
2014年会计人员工作总结
2014/12/10 职场文书
党员证明信
2015/06/19 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
分享7个 Python 实战项目练习
2022/03/03 Python