浅谈vue中$bus的使用和涉及到的问题
Hello大家周末好,最近项目比较忙所以没有及时的更新抱歉,今天给大家讲一vue.bus。使用过的都知道$bus是兄弟之间相互传值的项目中说实话用的地方不算多也会用到(每一个领域都是会有坑的呀)。
1创建$bus文件
创建一个文件内容如下
import Vue from 'vue'
export default new Vue();
2引入$bus
main.js: import Bus from './views/bus/bus';
Vue.prototype.$bus = Bus; //注意这里的Vue是我上面引入的vue import Vue from 'vue'
3使用传值
this.$bus.$emit("vaPage",value); //很像父子之间传值的方法
4接收
this.$bus.$on("vaPage", v =>{ //vaPage传的时候的key是什么接收就必须是什么 console.log(v); //v是传来的值,可以接收多个参数 })
5:填坑之路
大家假设一下一个场景现在有3个组件分别是A(父组件),B(子组件),C(子组件)
这时候B,C之间的通信就可以用$bus了,比如我在B中进行了操作然后要刷新自己和C组件的dom咱们就可以通过this.$bus.$emit(key,value); 然后C接受this.$bus.$on("key",v=>{});可以在这个组件调用方法什么的你在这里调用方法的时候会发现我只写了一次调用初始化的函数为啥会调用多少而且不刷新页面的时候越来越多,这是需要使用到咱们的生命周期函数beforDestroy在当前组件销毁的时候注销这个$bus的方法beforDestroy(){this.$bus.$off("val")//关闭$Bus}.
6
使用$bus的时候在接受bus的组件中别忘了再beforDestroy函数中销毁bus,不销毁的话会一直叠加的调用这个方法
beforDestroy(){ this.$bus.$off("vaPage"); //当这个组件销毁的时候bus也跟着一起销毁 }
补充知识vue-bus中央事件总线(兄弟组件之间传值)
1.作用:
非父子组件(例如兄弟组件)之间传值的方式,可以用vuex,也可以用事件总线,已下是事件总线(vue-bus)的介绍
2、注册
在main.js中注册
import Vue from 'vue'; import VueBus from 'vue-bus';//中央事件总线 ... Vue.use(VueBus); ...
3、使用
A页面传递给B也页面
A页面中,触发了一个叫toBPage的事件,并传递了参数'hello world!'
... methods: { toBPage(){ this.$bus.emit('bPage', 'hello world!'); }, } ...
B页面中,this.$bus.on监听了bPage并传入了回调函数this.getBPage,该回调函数的参数就是传递过来的数据
created() { this.$bus.on('bPage', this.getBPage); }, methods: { getBPage(item){ console.log(item);//item就是传递过来的数据 }, }
4.离开该页面时就无需再监听了,所以要销毁该监听事件,this.$bus.off就是销毁该监听事件
beforeDestroy() { this.$bus.off('bPage', this.getBPage); },
以上这篇浅谈vue中$bus的使用和涉及到的问题就是长沙网络推广分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持狼蚁SEO。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程