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 相关文章推荐
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
Jan 23 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
Jun 09 Javascript
ExtJS4中使用mixins实现多继承示例
Dec 03 Javascript
js 数组操作之pop,push,unshift,splice,shift
Jan 29 Javascript
js换图片效果可进行定时操作
Jun 09 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
Aug 19 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
Mar 06 Javascript
文本框只能输入数字的js代码(含小数点)
Jul 10 Javascript
JS正则表达式完美实现身份证校验功能
Oct 18 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
Mar 05 Javascript
JS如何生成动态列表
Sep 22 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
Nov 09 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中获取变量的变量名的一段代码的bug分析
2011/07/07 PHP
php常用文件操作函数汇总
2014/11/22 PHP
php检查字符串中是否有外链的方法
2015/07/29 PHP
thinkPHP实现多字段模糊匹配查询的方法
2016/12/01 PHP
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
js实现单一html页面两套css切换代码
2013/04/11 Javascript
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
Nodejs Post请求报socket hang up错误的解决办法
2014/09/25 NodeJs
2014年50个程序员最适用的免费JQuery插件
2014/12/15 Javascript
JS实现页面超时后自动跳转到登陆页面
2015/01/19 Javascript
jQuery+AJAX实现网页无刷新上传
2015/02/22 Javascript
JSON字符串和对象之间的转换详解
2015/05/26 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
Angular2 环境配置详细介绍
2016/09/21 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
2016/10/24 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
jQuery实现的五星点评功能【案例】
2019/02/18 jQuery
基于vue实现web端超大数据量表格的卡顿解决
2019/04/02 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
2019/06/07 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
2019/07/30 Javascript
[06:36]吞吞映像top1
2014/06/20 DOTA
判断网页编码的方法python版
2016/08/12 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
python pandas生成时间列表
2019/06/29 Python
在django中使用apscheduler 执行计划任务的实现方法
2020/02/11 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
2020/06/15 Python
日本网路线上商品代购服务:转送JAPAN
2016/08/05 全球购物
Nike爱尔兰官方网站:Nike.com (IE)
2018/03/12 全球购物
文职个人求职信范文
2013/09/23 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
离职报告范文
2014/11/04 职场文书
一年级数学下册复习计划
2015/01/17 职场文书
2016特色励志班级口号
2015/12/24 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书
详解Python requests模块
2021/06/21 Python