这篇文章主要介绍了vue 使用eventbus实现同级组件的通讯,需要的朋友可以参考下
新创建一个vue实例用于调度事件的绑定和发送
可以做到同级组件相互通讯,传递参数,点击第一个组件会修改第二个组件的label值,点击第二个组件会修改第二个组件的label值



<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="vue.js"></script>
</head>
<body>
<p id="app">
<one></one>
<two></two>
</p>
</body>
<script>
// 使用一个vue实例 作为事件的载体,用于绑定事件和处理发送事件,作为调度中心
let eventBus = new Vue()
let one = {
template: '<p>{{val}} <button @click="click">click</button></p>',
data() {
return {
val: 0
}
},
created() {
//为one绑定事件,如果two_click事件发生了,则执行回调函数
eventBus.$on('two_click',
(val) => {
// 这个this 指的是one的vue实例
this.val = val
}
)
},
methods: {
click() {
// 如果one被点击了,则发送一个one_click的事件,并传递一个参数
eventBus.$emit('one_click', 11)
}
}
}
let two = {
template: '<p>{{val}} <button @click="click">click</button></p>',
data() {
return {
val: 0
}
},
created() {
eventBus.$on('one_click',
(val) => {
this.val = val
})
},
methods: {
click() {
eventBus.$emit('two_click', 22)
}
}
}
new Vue({
el: '#app',
components: {
one,
two
}
})
</script>
</html>上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
立即学习“前端免费学习笔记(深入)”;
以上就是在vue中使用eventBus如何实现同级组件的通讯的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号