Vue组件中父组件和子组件之间的通信

一、父组件给子组件传参数。

1.首先可以通过props传参数。

页面的初始显示,这就是一个大的Home组件,里面包含了一个子组件:
Vue组件中父组件和子组件之间的通信_第1张图片
Home组件的代码如下:
Vue组件中父组件和子组件之间的通信_第2张图片
子组件的代码:
Vue组件中父组件和子组件之间的通信_第3张图片
这时候页面的显示,子组件确实是能够接收到父组件的参数。
这时候点击父组件的修改参数事件看页面结果是什么。部分参数确实是改变了,但是data中绑定的值却没有更新,这时候就可以利用this.$refs,通过父组件触发子组件的函数去更新data中的数据实现视图的更新。
(在一个页面的data中的数据确实已经改变了但是页面没有动态刷新,那么可以用this. $set)
**
Vue组件中父组件和子组件之间的通信_第4张图片

2.可以利用this.$ refs给子组件发送事件。
首先在父组件中的子组件标签上添加ref属性
通过【this.$refs. "ref属性的值” . “函数名” (传递的参数) 】给子组件传递事件和参数

Vue组件中父组件和子组件之间的通信_第5张图片

再到子组件编写该事件。如图:
Vue组件中父组件和子组件之间的通信_第6张图片
最后页面点击修改的结果:
Vue组件中父组件和子组件之间的通信_第7张图片

二、子组件给父组件传递参数。

1.可以通过自定义事件》this.$emit(事件名,参数).

初始界面:
Vue组件中父组件和子组件之间的通信_第8张图片
这时候父组件的value为空。
当点击后:

Vue组件中父组件和子组件之间的通信_第9张图片
子组件的代码如下:
Vue组件中父组件和子组件之间的通信_第10张图片
父组件的代码如下:
Vue组件中父组件和子组件之间的通信_第11张图片

你可能感兴趣的:(vue.js)