1.全局安装事件总线main.js
1 2 3 4 5 6 7
| new Vue({ render: h => h(App), beforeCreate() { Vue.prototype.$bus = this; } }).$mount('#app')
|
2.使用时间总线
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <template> <div class="school"> <h2 >学生姓名{{name}}</h2> <h2>学生性别{{sex}}</h2> <button @click="dianji()">点击传递</button> </div> </template> <script> export default { name:'Student', data() { return { name:'小韩', sex:'女', x:12,
} }, methods:{ dianji() { this.$bus.$emit('hello',66) } }
} </script>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| <template> <div class="school"> <h2 class="title font">学生姓名{{name}}</h2> <h2>学生性别{{sex}}</h2> </div> </template>
<script>
export default { name:'School', data() { return { name:'刘刘刘131414', sex:'男', x:12 } }, mounted() { this.$bus.$on('hello',(value) => { console.log('收到了student传来的数据',value); }) }, beforeDestroy() { this.$bus.$off('hello') } } </>
<style scoped>
.school{ background-color: red; } </style>
|
3.最好在beforeDestroy中解绑当前用到的事件
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !