Vue 组件间通信只要指以下 3 类通信:父子组件通信、隔代组件通信、兄弟组件通信,下面分别介绍每种通信方式且会说明此种方法可适用于哪类组件间通信。

(1)props / $emit 适用 父子组件通信

这种方法是 Vue 组件的基础,相信大部分同学耳闻能详。

(2)ref 与 $parent / $children 适用 父子组件通信

  • ref:如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例
  • $parent / $children:访问父 / 子实例

(3)EventBus ($emit / $on) 适用于 父子、隔代、兄弟组件通信

通过一个空的 Vue 实例作为中央事件总线(事件中心),用它来触发事件和监听事件,从而实现任何组件间的通信,包括父子、隔代、兄弟组件。

(4)$attrs/$listeners 适用于 隔代组件通信

  • $attrs:包含了父作用域中不被 prop 所识别 (且获取) 的特性绑定 ( class 和 style 除外 )。当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定 ( class 和 style 除外 ),并且可以通过 v-bind="$attrs" 传入内部组件。通常配合 inheritAttrs 选项一起使用。
  • $listeners:包含了父作用域中的 (不含 .native 修饰器的) v-on 事件监听器。它可以通过 v-on="$listeners" 传入内部组件

(5)provide / inject 适用于 隔代组件通信

祖先组件中通过 provider 来提供变量,然后在子孙组件中通过 inject 来注入变量。 provide / inject API 主要解决了跨级组件间的通信问题,不过它的使用场景,主要是子组件获取上级组件的状态,跨级组件间建立了一种主动提供与依赖注入的关系。

(6)Vuex 适用于 父子、隔代、兄弟组件通信

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。每一个 Vuex 应用的核心就是 store(仓库)。“store” 基本上就是一个容器,它包含着你的应用中大部分的状态 ( state )。

Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。这是它与全局变量的区别。

改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation。这样使得我们可以方便地跟踪每一个状态的变化。

容器间通信_Vue组件间通信的6种方式,前端工程师人人都会,网友:太简单了...相关推荐

  1. vue中子组件和子组件之间怎么通信_Vue组件间通信6种方式

    摘要: 总有一款合适的通信方式. Fundebug经授权转载,版权归原作者所有. 前言 组件是 vue.js 最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用 ...

  2. 【REACT NATIVE 系列教程之十三】利用LISTVIEW与TEXTINPUT制作聊天/对话框获取组件实例常用的两种方式...

    本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/react-native/2346.html ...

  3. html获取此次点击的id,github项目解析(八)--Activity启动过程中获取组件宽高的三种方式...

    转载请标明出处:1片枫叶的专栏 上1个github小项目中我们介绍了避免按钮重复点击的小框架,其实现的核心逻辑是重写OnClickListener的onClick方法,添加避免重复点击的逻辑,即为第2 ...

  4. vue组件穿方法_vue组件间通信六种方式(完整版)

    [51CTO.com原创稿件] 前言 组件是 vue.js强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用.一般来说,组件可以有以下几种关系: 如上图所示,A ...

  5. uniapp 子组件 props拿不到数据_Vue组件间的通信

    人之间的感情是复杂的以及需要维护的,那么就免不得各种打电话 你有多久没有打电话了呢? 你又有多久没有收到电话了呢? 你还记得你的手机来电铃声吗???? 爸爸给儿子打电话 ☎️ 父组件通过使用v-bin ...

  6. uniapp 子组件 props拿不到数据_Vue组件间的几种通信方式

    前言 最近在刷面试题时,看见这个问题便做了个总结,欢迎各位补充!!! 为了更好的阅读性,请使用掘金访问 1.props & $emit--适用于父子组件通信 父组件通过prop向子组件传递数据 ...

  7. vue向ifarm传值_vue组件间传值

    目前流行组件化开发,vue组件间传值是一个非常常用的功能,有时候仅仅是父子和兄弟之间简单的传值,我们就没有必要直接引入vuex来进行管理. # 1.父子间传值 ## 1.1 子组件向父组件传值 子组件 ...

  8. 简单教你React父子组件间平级组件间传值

    国庆充电特辑: 堵车堵死,废话不多说直接上菜. 1.父组件对子组件传值 利用props属性传值 class Component extends React.Component {constructor ...

  9. angularjs组件间通讯_angular组件间通讯的实现方法示例

    前言 一个angular应用一般情况下包含多个组件,而且要让组件互相之间能进行通讯(数据传送),这样才能构成一个有机的完整系统. 1.情景引入 下面例举一个实际遇到的情况: 上图页面包含两个组件,&q ...

最新文章

  1. 电力巡检智能管控主站平台性能优化(一):数据采集及用户行为分析
  2. 实现在Android本地视频播放器开发
  3. Java Web -【分页功能】详解
  4. struts2教程(4)--类型转换
  5. mutt+msmtp+gmail
  6. 安装face_recognition
  7. 云开发太简单了吧!「72变的云开发」有奖征文领三重好礼!
  8. C# - dynamic 特性
  9. vue中 mock使用教程
  10. PointNet:3D点集分类与分割深度学习模型
  11. 菜鸟ING的博客终于开园了。
  12. idea部署tomcat并实现简单的web项目
  13. NLP预训练家族 | 自成一派的GPT!
  14. 大 Θ记号、大 Ω记号、空间复杂度、时间复杂度
  15. HTML、CSS、JavaScript网页制作从入门到精通 (刘西杰) pdf扫描版彩色版​
  16. Linux安装与配置SSH服务
  17. 班级网站(网页设计实验)
  18. hive client 登录报权限不足问题/tmp/hive on HDFS should be writable. Current permissions are: rwx------
  19. FFmpeg获取视频旋转角度rotate获取不到的问题解决
  20. 陌陌和它的解药,聊聊出海社交产品的思路

热门文章

  1. pandas索引复合索引dataframe数据、索引dataframe中指定行和指定列交叉格子的数据内容(getting a specific value)、使用元组tuple表达复合索引的指定行
  2. R语言绘制线图(line)实战
  3. python使用pandas基于时间条件查询多个oracle数据表
  4. R语言日期函数weekdays, months, quarters julian实战(星期几、那个月、那个季度、时间差)
  5. R语言广义线性模型泊松回归(Poisson Regression)模型
  6. R语言创建频数表和列联表
  7. html 可以折叠的表格,javascript – html5 – 如何折叠和扩展复杂的表格元素
  8. 使用String()解决utf-8字符转GB2312的问题
  9. 重启随机游走算法(RWR:Random Walk with Restart)
  10. 【编译】makefile使用