
Vue使用bus进行组件间、父子路由间通信
发布日期:2021-05-08 03:02:53
浏览次数:7
分类:原创文章
本文共 764 字,大约阅读时间需要 2 分钟。
1.前言
在项目中遇到需要在父路由中调用子路由中的方法,这样的问题实际也是组件间的通信,在子路由中可以直接通过this.$parent.xxx来调用父页面中的方法,但反过来就有点头疼了,经过一番查阅后通过bus成功解决问题,这里仅记录如何解决应用问题,不追究bus更多的原理。
2.抽取封装bus
项目src下新建utils目录,新建bus.js:
import Vue from 'vue'const bus = new Vue()export default bus
3.子路由中监听
首先引入bus.js:
import bus from "@/utils/bus";
页面渲染完成即开始监听需要在父页面中使用的方法:
methods:{ test(){ console.log('123'); }, },mounted() { bus.$on('test',this.test); }
4.父页面中触发方法
引入bus.js:
import bus from "@/utils/bus";
触发:
methods:{ createGroup(){ bus.$emit('test') }, }
这样在父页面中给一个按钮绑定createGroup点击事件后,点击按钮后便可以调用子路由中的test方法。
5.注意
由于子路由页面中是在mounted中监听的方法,可能出现多次监听的情况,进而引起监听的方法多次触发的问题。只需要在监听前先取消就行:
mounted() { bus.$off('test'); bus.$on('test',this.test); }
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月22日 02时56分53秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MapReduce
2021-05-08
springboot swagger2
2021-05-08
shell(十)case的几个典型应用
2021-05-08
Linux环境变量配置错误导致命令不能使用(杂谈)
2021-05-08
openstack安装(六)镜像glance服务安装
2021-05-08
openstack安装(九)网络服务的安装--控制节点
2021-05-08
shell编程(六)语言编码规范之(变量)
2021-05-08
linux杂谈之特殊字符的打印和在各种软件如何打出
2021-05-08
vim杂谈(三)之配色方案
2021-05-08
vim杂谈(五)之vim不加载~/.vimrc
2021-05-08
Linux杂谈之终端快捷键
2021-05-08
vimscript学习笔记(二)预备知识
2021-05-08
vimscript学习笔记(三)信息打印
2021-05-08
awk杂谈之数组习题
2021-05-08
Linux网络属性配置详解
2021-05-08
Python(三十)类的理解
2021-05-08
Extjs布局详解
2021-05-08
Android数据库
2021-05-08
C语言之指针再涉(二)
2021-05-08