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 相关文章推荐
alixixi runcode.asp的代码不错的应用
Aug 08 Javascript
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
Jan 10 Javascript
JavaScript高级程序设计 读书笔记之十一 内置对象Global
Mar 07 Javascript
showModalDialog模态对话框的使用详解以及浏览器兼容
Jan 11 Javascript
jQuery实现html表格动态添加新行的方法
May 28 Javascript
Angular 应用技巧总结
Sep 14 Javascript
利用Node.js制作爬取大众点评的爬虫
Sep 22 Javascript
Javascript实现基本运算器
Jul 15 Javascript
angular ng-model 无法获取值的处理方法
Oct 02 Javascript
vue 自定义右键样式的实例代码
Nov 06 Javascript
vue路由权限校验功能的实现代码
Jun 07 Javascript
jQuery实现增删改查
Dec 22 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
PHP数组 为文章加关键字连接 文章内容自动加链接
2011/12/29 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
利用PHP抓取百度阅读的方法示例
2016/12/18 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
JavaScript 学习笔记(六)
2009/12/31 Javascript
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
js/jquery去掉空格,回车,换行示例代码
2013/11/05 Javascript
jQuery $命名冲突解决方案汇总
2014/11/13 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
2016/07/04 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
2016/08/03 Javascript
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
Javascript中绑定click事件的四种方式介绍
2018/10/26 Javascript
NestJs使用Mongoose对MongoDB操作的方法
2021/02/22 Javascript
Python的一些用法分享
2012/10/07 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
2017/01/20 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
python正则表达式及使用正则表达式的例子
2018/01/22 Python
Python 找到列表中满足某些条件的元素方法
2018/06/26 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
python多线程调用exit无法退出的解决方法
2019/02/18 Python
Python判断字符串是否xx开始或结尾的示例
2019/08/08 Python
CSS3制作翻转效果_动力节点Java学院整理
2017/07/11 HTML / CSS
适合各种场合的美食礼品:Harry & David
2016/08/03 全球购物
奥地利顶级内衣丝袜品牌英国站:Wolford英国
2016/08/29 全球购物
DELPHI中如何调用API,可举例说明
2014/01/16 面试题
酒店人事专员岗位职责
2013/12/19 职场文书
先进党支部事迹材料
2014/01/13 职场文书
致800米运动员广播稿(10篇)
2014/10/17 职场文书
环保主题班会教案
2015/08/13 职场文书
Pandas数据类型之category的用法
2021/06/28 Python
《废话连篇——致新手》——chinapizza
2022/04/05 无线电
xhunter1.sys可以删除嘛? win11提示xhunter1.sys驱动不兼容解决办法
2022/09/23 数码科技