Vue 2.0 中子同级组件之间的数据交互方法详解
158 浏览量
更新于2024-08-29
收藏 229KB PDF 举报
Vue2.0子同级组件之间数据交互方法
在本文中,我们将讨论 Vue2.0 中子同级组件之间数据交互的方法。 Vue.js 是一个轻量级的渐进式框架,对于它的一些特性和优点,请在官网上进行查看,不再赘述。
一、创建中央事件总线
在 Vue 项目中,我们可以创建一个中央事件总线,用于组件之间的通信。在 src/assets/ 下创建一个 eventBus.js,内容如下:
```
import Vue from 'vue'
export default new Vue()
```
这个文件创建了一个新的 Vue 实例,用于承担组件之间通信的桥梁。
二、创建FirstChild 组件
接下来,我们创建一个FirstChild 组件,引入 eventBus 这个事件总线,接着添加一个按钮并绑定一个点击事件:
```
<template>
<div>
<button @click="sendMsg">点击传值</button>
</div>
</template>
<script>
import eventBus from '../assets/eventBus'
export default {
methods: {
sendMsg() {
eventBus.$emit('userDefinedEvent', 'Hello, SecondChild!')
}
}
}
</script>
```
在这个组件中,我们使用了 $emit 方法触发了一个自定义的用户定义事件,并传递了一个字符串参数。
三、创建SecondChild 组件
然后,我们创建一个 SecondChild 组件,引入 eventBus 事件总线,并用一个 p 标签来显示传递过来的值:
```
<template>
<div>
<p>{{ msg }}</p>
</div>
</template>
<script>
import eventBus from '../assets/eventBus'
export default {
data() {
return {
msg: ''
}
},
mounted() {
eventBus.$on('userDefinedEvent', (msg) => {
this.msg = msg
})
}
}
</script>
```
在这个组件中,我们使用了 $on 方法监听了用户定义事件,并在回调函数中处理传递过来的参数。
四、在父组件中注册组件
最后,在父组件中,我们注册这两个组件,并添加这两个组件的标签:
```
<template>
<div>
<FirstChild />
<SecondChild />
</div>
</template>
<script>
import FirstChild from './FirstChild.vue'
import SecondChild from './SecondChild.vue'
export default {
components: { FirstChild, SecondChild }
}
</script>
```
保存所有修改的文件,然后打开浏览器窗口,点击“向组件传值”按钮,我们可以看到传值成功。
总结:
1. 创建一个事件总线,例如 demo 中的 eventBus,用它作为通信桥梁。
2. 在需要传值的组件中用 bus.$emit 触发一个自定义事件,并传递参数。
3. 在需要接收数据的组件中用 bus.$on 监听自定义事件,并在回调函数中处理传递过来的参数。
此外,兄弟组件之间与父组件之间的通信也可以使用这个方法实现。
在使用这个方法时,需要注意的是,eventBus 应该是单例的,以免出现多个实例引发的通信问题。
此外,使用 eventBus 还可以实现组件之间的解耦,提高代码的可维护性和可扩展性。
2019-10-30 上传
2022-05-08 上传
2020-11-30 上传
2023-03-26 上传
2023-09-07 上传
2024-03-27 上传
2023-05-01 上传
2023-08-31 上传
2024-04-17 上传
weixin_38502292
- 粉丝: 5
- 资源: 965
最新资源
- 十种常见电感线圈电感量计算公式详解
- 军用车辆:CAN总线的集成与优势
- CAN总线在汽车智能换档系统中的作用与实现
- CAN总线数据超载问题及解决策略
- 汽车车身系统CAN总线设计与应用
- SAP企业需求深度剖析:财务会计与供应链的关键流程与改进策略
- CAN总线在发动机电控系统中的通信设计实践
- Spring与iBATIS整合:快速开发与比较分析
- CAN总线驱动的整车管理系统硬件设计详解
- CAN总线通讯智能节点设计与实现
- DSP实现电动汽车CAN总线通讯技术
- CAN协议网关设计:自动位速率检测与互连
- Xcode免证书调试iPad程序开发指南
- 分布式数据库查询优化算法探讨
- Win7安装VC++6.0完全指南:解决兼容性与Office冲突
- MFC实现学生信息管理系统:登录与数据库操作