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 相关文章推荐
ExtJS 下拉多选框lovcombo
May 19 Javascript
不要使用jQuery触发原生事件的方法
Mar 03 Javascript
javascript常见数据验证插件大全
Aug 03 Javascript
基于JavaScript实现移动端TAB触屏切换效果
Oct 20 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
Nov 23 Javascript
全面解析Bootstrap表单使用方法(表单样式)
Nov 24 Javascript
如何判断出一个js对象是否一个dom对象
Nov 24 Javascript
localStorage实现便签小程序
Nov 28 Javascript
canvas实现图像布局填充功能
Feb 06 Javascript
全面介绍vue 全家桶和项目实例
Dec 27 Javascript
妙用缓存调用链实现JS方法的重载
Apr 30 Javascript
JS函数式编程实现XDM一
Jun 16 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 echo 输出字符串函数详解
2010/05/13 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
php通过rmdir删除目录的简单用法
2015/03/18 PHP
10条php编程小技巧
2015/07/07 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
2016/07/07 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
JS 各种网页尺寸判断实例方法
2013/04/18 Javascript
一个简单的jquery进度条示例
2014/04/28 Javascript
jQuery侧边栏实现代码
2016/05/06 Javascript
Vue.js render方法使用详解
2017/04/05 Javascript
angularJs自定义过滤器实现手机号信息隐藏的方法
2018/10/08 Javascript
详解Vue中的watch和computed
2020/11/09 Javascript
python 参数列表中的self 显式不等于冗余
2008/12/01 Python
python实现web方式logview的方法
2015/08/10 Python
python自动翻译实现方法
2016/05/28 Python
Django中的Signal代码详解
2018/02/05 Python
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
python日期与时间戳的各种转换示例
2020/02/12 Python
tensorflow2.0的函数签名与图结构(推荐)
2020/04/28 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
2020/06/29 Python
日本酒店、民宿、温泉旅馆、当地旅行团中文预订:e路东瀛
2019/12/09 全球购物
顶岗实习接收函
2014/01/09 职场文书
优秀社区干部事迹材料
2014/02/03 职场文书
信息专业学生学习的自我评价
2014/02/17 职场文书
优秀党务工作者事迹材料
2014/05/07 职场文书
应急管理培训方案
2014/06/12 职场文书
毕业生自荐材料范文
2014/12/30 职场文书
大学生学期个人总结
2015/02/12 职场文书
2015年护士医德医风自我评价
2015/03/03 职场文书
2015年学生会部门工作总结
2015/04/21 职场文书
立项申请报告范本
2015/05/15 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA
MySQL8.0 Undo Tablespace管理详解
2022/06/16 MySQL