vue中组件之间的通信
一、vue中组件通信的种类
- 父组件向子组件的通信
- 子组件向父组件的通信
- 隔代组件之间的通信
- 兄弟 组件 之间的通信
二、实现通信的方式
- props
- vue自定义的事件
- 消息订阅与发布
- vuex
- slot
三、具体怎么实现
3.1、props
- 可以通过一般的属性实现父向子组件的通信
- 可以通过函数属性实现子向父组件的通信
缺点:隔代组件和兄弟组件之间的通信比较麻烦
3.2、vue自定义的事件
- vue内置实现,可以代替函数类型的props
绑定监听:<MyComp @eventName="callback">
触发事件:this.$emit("eventName",data)
缺点:只适合子向父通信
3.3、消息订阅与发布
- 需要引入消息订阅与发布的实现库,如pubsub-js
订阅消息 :PubSub.subscribe('msg',(msg,data)=>{})
发布消息 : PubSub.publish('msg',data)
优点:此方式可以实现任意组件之间的通信
3.4、vuex
- vuex是集中式管理 vue多组件共享状态数据的vue插件
优点:对组件之间的关系没有限制 ,相比于pubsub库管理更加集中
3.5、 slot
- slot是专门用来实现父向子 传递 带数据 的标签
参考文章:https://www.cnblogs.com/lhb25/p/10-way-of-vue-data-interact.html
vue中组件之间的通信的更多相关文章
- 【转】vue父子组件之间的通信
vue父子组件之间的通信 在vue组件通信中其中最常见通信方式就是父子组件之中的通性,而父子组件的设定方式在不同情况下又各有不同.最常见的就是父组件为控制组件子组件为视图组件.父组件传递数据给子组件使 ...
- Vue中组件之间的通信方式
vue是数据驱动视图更新的框架, 所以对于vue来说组件间的数据通信非常重要,那么组件之间如何进行数据通信的呢? 本文会介绍组件间通信的8种方式如下图所示, 并介绍在不同的场景下如何选择有效方式实现的 ...
- Vue.js组件之间的通信
导语:组件之间的关系不外乎两种, 父子组件和非父子组件,本文将对两类组件之间的通信方式进行详细阐述. 父子组件间的通信 通信方式1(单向绑定): Props down, Events up (建议使用 ...
- vue中组件之间的相互调用,及通用后台管理系统左侧菜单树的迭代生成
由于本人近期开始学习使用vue搭建一个后端管理系统的前端项目,在左侧生成菜单树的时候遇到了一些问题.在这里记录下 分析:由于本人设定的菜单可以使多级结构,直接使用vue的v-for 遍历并不是很方便. ...
- vue父子组件之间的通信
利用props在子组件接受父组件传过来的值1.父组件parentComp.vue <template> <childComp :fromParentToChild="fro ...
- vue中兄弟之间组件通信
我们知道Vue中组件之间的通信有很多方式,父子之间通信比较简单,当我们使用vuex时候,兄弟组件之间的通信也很好得到解决 当我们项目较小时候,不使用vuex时候Vue中兄弟组件之间的通信是怎样进行的呢 ...
- vue组件之间的通信以及如何在父组件中调用子组件的方法和属性
在Vue中组件实例之间的作用域是孤立的,以为不能直接在子组件上引用父组件的数据,同时父组件也不能直接使用子组件的数据 一.父组件利用props往子组件传输数据 父组件: <div> < ...
- vue 基础-->进阶 教程(3):组件嵌套、组件之间的通信、路由机制
前面的nodejs教程并没有停止更新,因为node项目需要用vue来实现界面部分,所以先插入一个vue教程,以免不会的同学不能很好的完成项目. 本教程,将从零开始,教给大家vue的基础.高级操作.组件 ...
- vue工程利用pubsub-js实现兄弟组件之间的通信
前言 项目是基于vue-cli创建的,不会搭建vue开发环境的同学可以百度,这里不再赘述. 步骤流程 vue项目搭建完成之后的文件图如下: 我的上一篇博客已经详细叙述vue工程中各个文件的作用,不清楚 ...
随机推荐
- openresty开发系列13--lua基础语法2常用数据类型介绍
openresty开发系列13--lua基础语法2常用数据类型介绍 一)boolean(布尔)布尔类型,可选值 true/false: Lua 中 nil 和 false 为"假" ...
- Win10 x64 pnglib Debug
Win10 x64 pnglib Debug >------ 已启动生成: 项目: ZERO_CHECK, 配置: Debug x64 ------ > Checking Build S ...
- 解决 Win10 系统新建文件夹后需手动刷新才能显示
摘自:https://blog.csdn.net/weixin_44447687/article/details/100702968 1.点击开始菜单,选择“运行”功能,然后在运行打开框中输入 reg ...
- Yii2打印原始sql语句
$query = User::find() ->where(['id'=>[1,2,3,4]) ->select(['username']) // get the AR raw sq ...
- ecshop怎么以幻灯版调用首页主广告显示
今天在做一个商品网站我使用的是一套现成的ecshop模板了,这套模板下载下来多半是可以使用的,但是我发现第一屏的首页广告一直是不显示我想了很多办法都不显示了,后来一站长告诉我如何解决,下面我就来介绍e ...
- 【Leetcode_easy】832. Flipping an Image
problem 832. Flipping an Image solution1: class Solution { public: vector<vector<int>> f ...
- 原生JavaScript判断浏览器对CSS属性是否支持
/*判断浏览器是否支持某个css属性*/ function SupportCss(attrName){ var i=0, arr = SupportCss.opt.aBrowser, eleStyle ...
- 【Chrome插件】Session Buddy--搁置标签页
写在前面:看文章前请先看文章写作时间,避免浪费时间.2019-09-10 使用场景 Chrome打开许多网页,临时有事需要把当前的一些标签页一键保存,等待事后继续处理. 操作演示 原片地址:https ...
- MySQL 过滤复制+复制映射 配置方法
场景 node1 和 node2 为两台不同业务的MySQL服务器.业务方有个需求,需要将node1上的 employees库的departments .dept_manager 这2张表同步到 no ...
- qt linux下自动检测U盘热插拔
如果用U盘来更新软件,需要先删除当前的可执行文件,但是如果删除之后,复制失败的话会导致后续没有文件可以运行了.一个方法是将新的可执行文件放到另一个目录中,当copy成功后修改linux的启动文件,然后 ...