详解Vue 非父子组件通信方法(非Vuex)
发布时间 - 2026-01-11 01:16:18 点击率:次一提到两个非父子组件通信方法,有经验的 coder 肯定会说用 Vuex 啊,我个人建议不要为了用 Vuex 而用 Vuex,除非你的项目很大,耦合度很高,需要大量的储存一些 data,组件之间通信频繁。当然还是要根据自己的业务场景的来决定,总之还是那句话,不要为了用 Vuex 而用 Vuex!

Vue 官网介绍了非父子组件通信方法:
不过官网说的太简单了,新手看完估计还是一脸懵逼。还有这个空的 Vue 实例放到哪里合适也值得商榷。
这篇文章的目的就是用一个简单的例子让你明白如何用 Bus 🚌 来进行通信:
假设 bb 组件里面有个按钮,点击按钮,把 123 传递给 aa 组件
// 根组件(this.$root)
new Vue({
el: '#app',
router,
render: h => h(App),
data: {
// 空的实例放到根组件下,所有的子组件都能调用
Bus: new Vue()
}
})
bb 组件内调用事件触发↓
<button @click="submit">提交<button>
methods: {
submit() {
// 事件名字自定义,用不同的名字区别事件
this.$root.Bus.$emit('eventName', 123)
}
}
aa 组件内调用事件接收↓
// 当前实例创建完成就监听这个事件
created(){
this.$root.Bus.$on('eventName', value => {
this.print(value)
})
},
methods: {
print(value) {
console.log(value)
}
},
// 在组件销毁时别忘了解除事件绑定
beforeDestroy() {
this.$root.Bus.$off('eventName')
},
这样就可以了,是不是很简单?
问题一:如果有多个组件组件需要通信,是不是要在根组件上多建几个 Bus?
答:不需要的,只要保证事件名 (eventName)不一样就行了。
问题二:为什么要弄个 Bus?直接 this.$root.$on、this.$root.$emit 不更简单粗暴?
答:按照文档上的说法是专门用一个空的 Vue 实例(Bus)来做中央事件总线更加清晰也易于管理。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# vue非父子组件通信
# vuex
# 非父子组件通信
# vue2
# vue2.0父子组件及非父子组件之间的通信方法
# vue2利用Bus.js如何实现非父子组件通信详解
# Vue非父子组件通信详解
# vue中的event bus非父子组件通信解析
# vue非父子组件通信问题及解决方法
# vue3 非父子组件通信详解
# Vue组件通信中非父子组件传值知识点总结
# vue中非父子组件的通信你了解吗
# Vue非父子组件之间的通信方式详解
# 官网
# 而用
# 自己的
# 几个
# 让你
# 有个
# 多个
# 不需要
# 都能
# 一脸
# 要在
# 很高
# 很简单
# 看完
# 自定义
# 会说
# 这篇文章
# 来做
# 别忘了
# 绑定
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Python文件流缓冲机制_IO性能解析【教程】
C++用Dijkstra(迪杰斯特拉)算法求最短路径
Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
怎样使用JSON进行数据交换_它有什么限制
公司网站制作价格怎么算,公司办个官网需要多少钱?
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
英语简历制作免费网站推荐,如何将简历翻译成英文?
LinuxCD持续部署教程_自动发布与回滚机制
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
电商网站制作价格怎么算,网上拍卖流程以及规则?
如何确保西部建站助手FTP传输的安全性?
Linux安全能力提升路径_长期防护思维说明【指导】
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
如何快速辨别茅台真假?关键步骤解析
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
JS去除重复并统计数量的实现方法
EditPlus中的正则表达式实战(6)
BootStrap整体框架之基础布局组件
企业网站制作这些问题要关注
如何用西部建站助手快速创建专业网站?
Laravel如何实现用户密码重置功能?(完整流程代码)
Python面向对象测试方法_mock解析【教程】
如何在IIS服务器上快速部署高效网站?
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
Windows Hello人脸识别突然无法使用
lovemo网页版地址 lovemo官网手机登录
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
Mybatis 中的insertOrUpdate操作
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
jQuery validate插件功能与用法详解
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
专业商城网站制作公司有哪些,pi商城官网是哪个?
JS碰撞运动实现方法详解
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
浅谈javascript alert和confirm的美化
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
JavaScript实现Fly Bird小游戏
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
使用spring连接及操作mongodb3.0实例
Laravel如何使用Telescope进行调试?(安装和使用教程)
EditPlus中的正则表达式 实战(1)
打造顶配客厅影院,这份100寸电视推荐名单请查收
免费视频制作网站,更新又快又好的免费电影网站?
JS弹性运动实现方法分析
如何确保FTP站点访问权限与数据传输安全?

