您现在的位置是:网站首页> 编程资料编程资料
Vue组件通信深入分析_vue.js_
2023-05-24
891人已围观
简介 Vue组件通信深入分析_vue.js_
一、组件间的通信方式分类
- 父子组件之间的通信;
- 兄弟组件之间的通信;
- 祖孙与后代组件之间的通信;
- 非关系组件之间的通信。

二、props传递数据
适用场景:父组件传递数据给子组件;
- 子组件设置props属性,定义接收父组件传递过来的参数;
- 父组件在使用子组件标签中通过字面量来传递值
Person.vue
Person
Student1.vue
Student1 {{name}},{{age}}
效果

三、$emit 触发自定义事件
- 适用场景:子组件传递数据给父组件
- 子组件通过
$emit触发自定义事件,$emit第二个参数为传递的数值; - 父组件绑定监听器获取到子组件传递过来的参数。
Student1.vue
Student1
Person.vue
Person
四、ref标记
- 使用场景:子组件传递数据给父组件
- 父组件在使用子组件的时候设置ref
- 父组件通过设置子组件ref来获取数据
Person
效果

五、EventBus事件总线
- 使用场景:任意组件传值
- 创建一个中央事件总线EventBus
- 兄弟组件通过
$emit触发自定义事件,$emit第二个参数为传递的数值 - 另一个兄弟组件通过
$on监听自定义事件
main.js
beforeCreate() { Vue.prototype.$bus = this } Student2.vue
Student2
Student1.vue
mounted() { this.$bus.$on('bus', (data) => { console.log(data) }) },六、$parent 或 $root
使用方法类似全局事件总结
Vue.prototype.$parent = this
// 传数据 this.$parent.$emit('parent',this.age) //接数据 this.$parent.$on('parent', (data) => { console.log(data); })七、vuex
- 使用场景:复杂关系的组件数据传递
- Vuex是一个用来存储共享变量的容器
- state:用来存放共享遍历的地方;
- getter:可以增加一个getter派生状态,用来获得共享变量的值;
- mutations:用来存放修改state的方法;
- actions也是用来存放修改state的方法,不过action是在mutations的基础上进行的。常用来做一些异步操作。
八、总结
- 父——>子:props;
- 子——>父:$emit,ref;
- 兄弟——>兄弟,任意——>任意:$bus。
- 复杂关系:vuex。
到此这篇关于Vue组件通信深入分析的文章就介绍到这了,更多相关Vue组件通信内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
您可能感兴趣的文章:
相关内容
- Vue NextTick介绍与使用原理_vue.js_
- defineProperty和Proxy基础功能及性能对比_vue.js_
- React中井字棋游戏的实现示例_React_
- Vue--Router动态路由的用法示例详解_vue.js_
- Vue双向数据绑定与响应式原理深入探究_vue.js_
- vue混入mixin的介绍及理解_vue.js_
- 3分钟精通高阶前端随手写TS插件_JavaScript_
- JavaScript数组扁平转树形结构数据(Tree)的实现_javascript技巧_
- 使用vue+element ui实现走马灯切换预览表格数据_vue.js_
- 没有resolve及reject的Promise是否会造成内存泄露_JavaScript_
