父子组件之间的数据关系,我这边将情况具体分成下面4种:
父组件修改子组件的data,并实时更新
子组件通过$emit传递子组件的数据,this.$data指当前组件的data(return{...})里的所有数据,
rush:xhtml;">
this.$emit('data',this.$data);
之后通过父组件的getinputdata方法来接收数据
rush:xhtml;">
@data='getinputdata'
其中的data就是传过来的数据,通过修改这个数据就可以通过父组件实时更新子组件
rush:xhtml;">
getinputdata(data) {
console.log(data);
data.background = {
backgroundColor: 'yellow',border: 'none'
};
}
子组件修改父组件的data
在子组件中是修改不了父组件的data的,只有通过上面的$emit方法在父组件中修改数据。
可参考vue官网的自定义事件:
子组件获取父组件的data,修改但不实时更新
1. 子组件将父组件通过props传递的数据,再把props的值赋给let或var声明变量,之后使用这个变量就可以了。
2. 子组件将父组件通过props传递的数据,再把props的值赋给data(return{...})里的变量,之后使用这个变量就可以了。
父组件获取子组件的data,修改但不实时更新
这边的方法和‘子组件获取父组件的data,修改但不实时更新'的方法一样,其中只有传值的方式有区别。子组件通过$emit把值传给父组件。
以上这篇Vue 父子组件的数据传递、修改和更新方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。