父组件向子组件传值
1.父组件在子组件标签绑定需要向子组件传得值。在子组件通过props接收。
子组件向父组件传值有三种方式
1.在父组件向子组件标签绑定一个函数,在子组件同过props接收,调用该函数,向该函数得参数传递需要父组件传递得值
2.在父组件定义一个函数,在子组件标签通过绑定一个函数,函数得回调就是前面定义得函数。
在子组件标签通过this.$emit('子组件标签绑定的函数',传递的值)
3.在父组件的子组件标签使用ref="定义子组件的名字",在mounted钩子给子组件绑定例如
this.$refs.stu.$on('student',this.schoolMsg),参数1为绑定函数,参数二为触发绑定函数要发生的事件,子组件标签同样通过this.$emit('子组件标签绑定的函数',传递的值)出发绑定事件。
其实方法3和2原理相同,只是方式不同
组件绑定的自定义事件都可以通过组件实例对向调用$off解绑
全局事件总线
1.创建全局事件总线
在入口文件mianjs 里面的beforcreate 钩子创建
beforeCreate() {
Vue.prototype.$bus = this //全局事件总线
},
2. 在需要数据的组件里面定义一个函数来接收数据,在事件总线里面绑定一个函数,回调就是接收数据的函数。在传输数据的组件通过this.$bus.$emit('绑定的函数',传输的数据)。就可以实现数据传输