Vue 父子组件的数据传递、修改和更新方法


Posted in Javascript onMarch 01, 2018

父子组件之间的数据关系,我这边将情况具体分成下面4种:

父组件修改子组件的data,并实时更新

子组件通过$emit传递子组件的数据,this.$data指当前组件的data(return{...})里的所有数据,

this.$emit('data',this.$data);

之后通过父组件的getinputdata方法来接收数据

@data='getinputdata'

其中的data就是传过来的数据,通过修改这个数据就可以通过父组件实时更新子组件

getinputdata(data) {
 console.log(data);
 data.background = {
  backgroundColor: 'yellow',
  border: 'none'
 };
}

子组件修改父组件的data

在子组件中是修改不了父组件的data的,只有通过上面的$emit方法在父组件中修改数据。

可参考vue官网的自定义事件:https://cn.vuejs.org/v2/guide/components.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BA%8B%E4%BB%B6

子组件获取父组件的data,修改但不实时更新

1. 子组件将父组件通过props传递的数据,再把props的值赋给let或var声明变量,之后使用这个变量就可以了。

let test = this.testoutdata;
test++;
console.log(test);
console.log('test:'+this.testoutdata);

2. 子组件将父组件通过props传递的数据,再把props的值赋给data(return{...})里的变量,之后使用这个变量就可以了。

this.outtest++;
console.log(this.outtest);
console.log('test:'+this.testoutdata);

可参考vue官网的自定义事件:https://cn.vuejs.org/v2/guide/components.html#%E5%8D%95%E5%90%91%E6%95%B0%E6%8D%AE%E6%B5%81

父组件获取子组件的data,修改但不实时更新

这边的方法和‘子组件获取父组件的data,修改但不实时更新'的方法一样,其中只有传值的方式有区别。子组件通过$emit把值传给父组件。

以上这篇Vue 父子组件的数据传递、修改和更新方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
对象的类型:本地对象(1)
Dec 29 Javascript
javascript 页面只自动刷新一次
Jul 10 Javascript
js截取小数点后几位的写法
Nov 14 Javascript
js纯数字逐一停止显示效果的实现代码
Mar 16 Javascript
Vue.js每天必学之组件与组件间的通信
Sep 08 Javascript
JavaScript自定义分页样式
Jan 17 Javascript
React Native react-navigation 导航使用详解
Dec 01 Javascript
django使用channels2.x实现实时通讯
Nov 28 Javascript
微信小程序实现录音功能
Nov 22 Javascript
vue路由缓存的几种实现方式小结
Feb 02 Javascript
node运行js获得输出的三种方式示例详解
Jul 02 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
Jul 28 Javascript
vue2.0 子组件改变props值,并向父组件传值的方法
Mar 01 #Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
Mar 01 #Javascript
vue 虚拟dom的patch源码分析
Mar 01 #Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
Mar 01 #Javascript
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
Mar 01 #Javascript
React Native 图片查看组件的方法
Mar 01 #Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
Mar 01 #Javascript
You might like
PHP脚本的10个技巧(7)
2006/10/09 PHP
php include,include_once,require,require_once
2008/09/05 PHP
php除数取整示例
2014/04/24 PHP
php的SimpleXML方法读写XML接口文件实例解析
2014/06/16 PHP
php5.4传引用时报错问题分析
2016/01/22 PHP
AJAX的使用方法详解
2017/04/29 PHP
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
2013/10/11 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
用JS在浏览器中创建下载文件
2014/03/05 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
JQuery的attr 与 val区别
2016/06/12 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
简单理解js的prototype属性及使用
2016/12/07 Javascript
JS轮播图中缓动函数的封装
2020/11/25 Javascript
vue实现todolist单页面应用
2017/04/11 Javascript
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
vue.js 获取select中的value实例
2018/03/01 Javascript
vue移动端实现下拉刷新
2018/04/22 Javascript
vue v-for 使用问题整理小结
2019/08/04 Javascript
微信小程序背景音乐开发详解
2019/12/12 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
2021/02/15 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
Python使用import导入本地脚本及导入模块的技巧总结
2019/08/07 Python
django执行数据库查询之后实现返回的结果集转json
2020/03/31 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
CSS3实战第一波 让我们尽情的圆角吧
2010/08/27 HTML / CSS
HTML5新标签兼容——> 的两种方法
2018/09/12 HTML / CSS
李维斯法国官网:Levi’s法国
2019/07/13 全球购物
Fnac西班牙官网:法国文化和电子产品零售商
2021/03/14 全球购物
村干部群众路线教育活动对照检查材料
2014/10/01 职场文书
在Python中如何使用yield
2021/06/07 Python