若是不是父子组件须要通讯,那将怎样实现呢?
首先咱们须要建立一个事件中心,经过事件中心来接收或者传递事件,做为一个中转站javascript
let eventControl = new Vue();
<template> <div @pubEvent="changeData"></div> //监听组件触发的事件,而后调用changeData方法 </template> <script type="text/javascript"> export default { data () { return { } } methods: { changData () { eventControl.$emit('changTo', 'msg') //触发事件中心,以及须要传递的事件 } } } </script> <style type="text/css"> </style>
此时此刻已完成须要的事件的添加到了中转站,触发事件已经完成css
<template> <div></div> </template> <script type="text/javascript"> export default { data () { return { msg: '' } } create () { eventControl.$on('changTo', () => { this.msg = msg //接收触发事件中心 }) } } </script> <style type="text/css"> </style>
此时此刻已完成接收事件的监听在中转站,接收事件已经完成,当触发事件被点击的,则中转站中的接收事件
会监听到,从而完成费父子组件间的通讯,进行传递msg信息java
4.自定义事件传递信息这里不作阐述,方法会较为复杂,须要了解的能够观看官方Api,谢谢this