关于子组件this和$emit问题

来源:4-5 非父子组件间的传值

即墨火未燃

2018-05-10

//img.mukewang.com/szimg/5af3f23c0001beb106330639.jpg

请问下子组件里点击事件中这个this指什么呢?为什么不加.bus,直接this.$emit()传递给的就是父组件,父组件就可以通过监听来触发事件,但加了this.bus.$emit()就不能传递给父组件了?加了bus是传到了哪里呢?为什么全局组件里通过钩子生命周期函数里的this.bus就能监听到了?感觉这节听的有点懵

写回答

2回答

Dell

2018-05-10

这节课实际上是js的精髓,通过事件驱动数据传递,我建议你自己看一些发布订阅,观察者模式的文章,然后回来再反复听几次,就有感觉了

1
1
即墨火未燃
好的,谢谢老师
2018-05-11
共1条回复

慕斯卡7361223

2018-05-10

子组件的的this指的时子组件本身,通过proptype把所有的vue都有了bus属性,所有的vue都可以调用这个属性,同时这个bus属性是个new Vue(),所以有$emit()事件,通过此次挂载,实现非父子组件之间的事件触发,实现传值的目的

1
0

Vue2.5-2.6-3.0开发去哪儿网App 零基础入门到实战

课程紧跟Vue3版本迭代,企业主流版本Vue2+Vue3全掌握

10675 学习 · 8191 问题

查看课程