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 相关文章推荐
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
May 03 Javascript
载入jQuery库的最佳方法详细说明及实现代码
Dec 28 Javascript
js 删除数组的几种方法小结
Feb 21 Javascript
node.js中的events.emitter.once方法使用说明
Dec 10 Javascript
JavaScript简单下拉菜单实例代码
Sep 07 Javascript
JavaScript判断DIV内容是否为空的方法
Jan 29 Javascript
Vue.js计算属性computed与watch(5)
Dec 09 Javascript
详解angular中如何监控dom渲染完毕
Jan 03 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
Jan 05 Javascript
浅谈ECMAScript6新特性之let、const
Aug 02 Javascript
vue 2.x 中axios 封装的get 和post方法
Feb 28 Javascript
多个vue子路由文件自动化合并的方法
Sep 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
UTF8编码内的繁简转换的PHP类
2009/07/09 PHP
浅谈PHP中foreach/in_array的使用
2015/11/02 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
2016/07/07 PHP
看了就知道什么是JSON
2007/12/09 Javascript
myFocus slide3D v1.1.0 使用方法与下载
2011/01/12 Javascript
js复制到剪切板的实例方法
2013/06/28 Javascript
JavaScript异步编程:异步数据收集的具体方法
2013/08/19 Javascript
jQuery ajax调用WCF服务实例
2014/07/16 Javascript
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
jQuery+ajax实现实用的点赞插件代码
2016/07/06 Javascript
javascript中href和replace的比较(详解)
2016/11/25 Javascript
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
微信小程序实现炫酷的弹出式菜单特效
2019/01/28 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
2015/03/31 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
Python之Class&amp;Object用法详解
2019/12/25 Python
pytorch GAN伪造手写体mnist数据集方式
2020/01/10 Python
Python requests获取网页常用方法解析
2020/02/20 Python
Python实现对adb命令封装
2020/03/06 Python
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
巴西网上药店:Drogaria Araujo
2021/01/06 全球购物
董事长秘书岗位职责
2013/11/29 职场文书
公益广告语集锦
2014/03/13 职场文书
小学老师寄语大全
2014/04/04 职场文书
二年级小学生评语
2014/04/21 职场文书
2014年人事科工作总结
2014/11/19 职场文书
2015年基层党建工作总结
2015/05/14 职场文书
围城读书笔记
2015/06/26 职场文书
让文件路径提取变得更简单的Python Path库
2021/05/27 Python
Go gorilla/sessions库安装使用
2022/08/14 Golang
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS