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 相关文章推荐
juqery 学习之五 文档处理 包裹、替换、删除、复制
Feb 11 Javascript
javascript学习笔记(三) String 字符串类型介绍
Jun 19 Javascript
express的中间件bodyParser详解
Dec 04 Javascript
jQuery中size()方法用法实例
Dec 27 Javascript
AngularJS中的Directive实现延迟加载
Jan 25 Javascript
jQuery获取父元素及父节点的方法小结
Apr 14 Javascript
利用JS提交表单的几种方法和验证(必看篇)
Sep 17 Javascript
Bootstrap模态窗口源码解析
Feb 08 Javascript
vue组件间通信解析
Mar 01 Javascript
AngularJS之页面跳转Route实例代码
Mar 10 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
Mar 02 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
May 30 jQuery
详解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
PHP6 mysql连接方式说明
2009/02/09 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
PHP加密技术的简单实现
2016/09/04 PHP
JavaScript 组件之旅(四):测试 JavaScript 组件
2009/10/28 Javascript
关于图片按比例自适应缩放的js代码
2011/10/30 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
JavaScript实现SHA-1加密算法的方法
2015/03/11 Javascript
js实现二级菜单渐隐显示
2015/11/03 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
给Easyui-Datebox设置隐藏或者不可用的解决方法
2017/05/26 Javascript
jquery 输入框查找关键字并提亮颜色的实例代码
2018/01/23 jQuery
iconfont的三种使用方式详解
2018/08/05 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
Vue中使用vux配置代码详解
2018/09/16 Javascript
移动端吸顶fixbar的解决方案详解
2019/07/17 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
[02:17]2016国际邀请赛中国区预选赛VG战队领队采访
2016/06/26 DOTA
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
Linux下使用python调用top命令获得CPU利用率
2015/03/10 Python
Python中实现参数类型检查的简单方法
2015/04/21 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
PyQt5实现简易计算器
2020/05/30 Python
Python实现的爬取百度贴吧图片功能完整示例
2019/05/10 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
2019/05/13 Python
python面向对象 反射原理解析
2019/08/12 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
Python图像读写方法对比
2020/11/16 Python
番木瓜健康和保健产品第一大制造商:Herbal Papaya
2017/04/25 全球购物
KIEHL’S科颜氏官方旗舰店:源自美国的顶级护肤品牌
2018/06/07 全球购物
劳动争议和解协议书范本
2014/11/20 职场文书
解析laravel使用workerman用户交互、服务器交互
2021/04/28 PHP
深入浅出的讲解:信号调制到底是如何实现的
2022/02/18 无线电
nginx七层负载均衡配置详解
2022/07/15 Servers