父子组件之间的通信依靠 props ,events
1、父组件通过 属性props向下传递数据给子组件
2、子组件通过 事件events 给父组件发送消息
子组件需要某个数据,就在内部定义一个prop属性,然后父组件就像给html元素指定特性值一样,把自己的data属性传递给子组件的这个属性。
而当子组件内部发生了什么事情的时候,就通过自定义事件来把这个事情涉及到的数据暴露出来,供父组件处理。
<component v-bind:type="state" v-on:click="myclick(arg1,...arg2)"></component>
如上代码,type是组件内部定义的一个prop属性,state是父组件的一个data属性,
click是子组件定义的一个事件,myclick是父组件的一个方法
过程如下:
1、父组件把state中数据通过prop传递给子组件的type;
2、子组件内部得到type的值,就可以进行相应的操作;
3、当子组件内部处理完数据后,通过触发click事件,把一些数据发送出去如下:
this.$emit('myclick', this.type)
4、父组件把这个事件处理器绑定为myclick方法,子组件发送的数据,就作为myclick方法的参数被传进来
5、父组件就可以根据这些数据,进行相应的操作
methods: {
//该方法用于接收子组件传值typ通过arguments取值
myclick() {
console.log(arguments)
}
}

本文深入解析了Vue.js中父子组件间如何通过props和events进行数据通信。详细介绍了父组件通过props向下传递数据,子组件通过自定义事件向上传递信息的过程。
416

被折叠的 条评论
为什么被折叠?



