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 相关文章推荐
清除网页历史记录,屏蔽后退按钮!
Dec 22 Javascript
JQuery autocomplete 使用手册
Apr 01 Javascript
JavaScript 基础篇之运算符、语句(二)
Apr 07 Javascript
解读JavaScript中 For, While与递归的用法
May 07 Javascript
JS实现关键字搜索时的相关下拉字段效果
Aug 05 Javascript
AngularJS HTML编译器介绍
Dec 06 Javascript
快速学习jQuery插件 Cookie插件使用方法
Dec 01 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
Jun 25 Javascript
简单实现jQuery级联菜单
Jan 09 Javascript
详解vue 命名视图
Aug 14 Javascript
d3.js实现图形缩放平移
Dec 19 Javascript
通过实例了解Javascript柯里化流程
Mar 03 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
php 数组的创建、调用和更新实现代码
2009/03/09 PHP
在php和MySql中计算时间差的方法
2011/04/22 PHP
php根据年月获取当月天数及日期数组的方法
2016/11/30 PHP
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
用模版生成HTML的的框架jquery.tmpl使用详解
2015/01/07 Javascript
原生js实现日期联动
2015/01/12 Javascript
js中for in语句的用法讲解
2015/04/24 Javascript
使用jQuery加载html页面到指定的div实现方法
2016/07/13 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
浅谈Javascript数据属性与访问器属性
2016/07/26 Javascript
点击页面任何位置隐藏div的实现方法
2016/09/05 Javascript
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
2016/12/15 Javascript
ajax的分页查询示例(不刷新页面)
2017/01/11 Javascript
JavaScript callback回调函数用法实例分析
2018/05/08 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
jQuery 查找元素操作实例小结
2019/10/02 jQuery
javascript实现雪花飘落效果
2020/08/19 Javascript
Vue.js暴露方法给WebView的使用操作
2020/09/07 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
python把转列表为集合的方法
2019/06/28 Python
python输出带颜色字体实例方法
2019/09/01 Python
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
html5+CSS3+JS实现七夕言情功能代码
2017/08/28 HTML / CSS
美国最大的骑马用品零售商:HorseLoverZ
2017/01/12 全球购物
亚洲领先的旅游体验市场:Voyagin
2019/11/23 全球购物
财产公证书样本
2014/04/04 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
平面设计师岗位职责
2014/09/18 职场文书
个人整改方案范文
2014/10/25 职场文书
项目建议书
2015/02/04 职场文书
英文慰问信范文
2015/03/24 职场文书
放假通知格式
2015/04/14 职场文书
公司仓库管理制度
2015/08/04 职场文书
javascript的var与let,const之间的区别详解
2022/02/18 Javascript