在Vue中父子组件的数据传递、修改和更新是如何实现的(详细教程)

如题所述


下面我就为大家分享一篇Vue 父子组件的数据传递、修改和更新方法,具有很好的参考价值,希望对大家有所帮助。
父子组件之间的数据关系,我这边将情况具体分成下面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.js自定义事件的表单输入组件方法
vue.js移动数组位置,同时更新视图的方法
vue.js或js实现中文A-Z排序的方法
温馨提示:答案为网友推荐,仅供参考