转自:https://www.cnblogs.com/goloving/p/8660407.html
当在一个组件中,使用了其他自定义组件时,就会利用子组件的属性和事件来和父组件进行数据交流。
父子组件之间的通信就是 props down, events up,父组件通过 属性props向下传递数据给子组件,子组件通过事件 events 给父组件发送消息。
子组件需要某个数据时,就在内部定义一个prop属性,父组件就像给HTML元素指定特定值一样,把自己的data属性传递给子组件的这个属性。
而子组件内部发生什么事情的时候,就通过自定义事件来把这个事情涉及到的数据暴露出来,供父组件处理。
<my-component v-bind:foo="baz" v-on:event="doThis(arg1,...arg2)"></my-component>
以上代码中,foo是 <my-component> 组件内部定义的prop属性,baz 是父组件的一个data属性,event是子组件定义的一个事件,doThis是父组件的一个方法。
父组件把baz
数据通过prop
传递给子组件的foo
;
子组件内部得到foo
的值,就可以进行相应的操作;
当子组件内部发生了一些变化,希望父组件能知道时,就利用代码触发event-a
事件,把一些数据发送出去;
父组件把这个事件处理器绑定为doThis
方法,子组件发送的数据,就作为doThis
方法的参数被传进来;
然后父组件就可以根据这些数据,进行相应的操作。