Vue.js组件-组件通信-非父子组件传值以及其他通信方式
非父子组件传值
- 非父子组件指的是兄弟组件或完全无关的两个组件
兄弟组件
- 兄弟组件可以通过父组件进行数据中转,简单来讲,A是父组件,BC是两个兄弟组,那么我们可以先B传给A,再A传给C。示例如图:
EventBus
- 当组件嵌套关系复杂时,根据组件关系传值会较为繁琐。组件为了数据中转,data中会存在许多与当前组件功能无关的数据。这时就需要使用EventBus。
- EventBus(事件总线)是一个独立的事件中心,用于管理不同组件间的传值操作
- EventBus通过一个新的Vue实例来管理组件传值操作,组件通过给实例注册事件,调用事件来实现数据传递:
var bus = new Vue();
- 发送数据的组件触发bus事件,接收的组件给bus注册对应事件,示例如图:
- 给bus注册对应事件通过
$on()
操作,示例如图: - 最后创建根实例执行代码即可
其他通信方式
$root
$root
用于访问大年组件树根实例,设置简单的Vue应用时可以通过此方式进行组件传值,示例如图:- 除了
$root
,Vue.js中还提供了$parent
与$children
用于便捷访问父子组件
$refs
- 用于获取设置了ref属性的HTML标签或子组件
- 给普通HTML标签设置ref属性,
$refs
可以获取DOM对象,示例如图: - 给子组件设置ref属性,渲染后可通过
$refs
获取子组件实例,示例如图:
ok,组件通信就复习完了,后面是组价插槽的内容。今日份推荐歌曲:邰正宵-千纸鹤
Vue.js组件-组件通信-非父子组件传值以及其他通信方式相关推荐
- 初识 Vue(18)---(非父子组件间的传值)
非父子组件间的传值 常一个应用会以一棵嵌套的组件树的形式来组织:将一个大组件进行拆分 下图这种情况的组件间传值(父子组件间传值) 方法:父组件通过 Props 向子组件传值,子组件通过事件触发向父组件 ...
- React组件通信-非父子组件间的通信
文章目录 React非父子组件通信 小知识点的补充 Context应用场景 Context相关API Context使用流程 React非父子组件通信 在React中, 非父子组件传递是通过一个API ...
- Vue之非父子组件通信
Vue之非父子组件通信 非父子组件传值方法: 1:在model中新建一个js文件 引入Vue 实例化Vue 最后暴露相关实例 // 引入vue import Vue from 'vue' // 创建 ...
- Vue组件化开发--组件通信方式-父传子、子传父、非父子组件传值
一.概述 以脚手架搭建的Vue项目为笔记背景. 如果将所有的代码逻辑全部放到一个组件中,代码是非常的臃肿和难以维护的. 并且在真实开发中,可能会有更多的内容和代码逻辑,对于扩展性和可维护性来说都是非常 ...
- vue学习【非父子组件传值问题(Bus/总线/观察者模式)】
如果两个组件是父子关系,就可以通过props的方式传值. 父组件通过props向子组件传值,子组件通过事件触发向父组件传值 那么如果两个组件之间不具备父子关系,该如何传值呢?任何一个网页都可以拆分成几 ...
- vue 2 使用 Bus.js 实现兄弟 (非父子) 组件通信 简单案例
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. vue2中废弃了$dispatch和$broadcast广播和分发事件的方法.父子组件中可以用pro ...
- Vue 非父子组件通信
前面的话 在实际业务中,除了父子通信外,还有很多非父子组件通信的场景,非父子组件一般有两种,兄弟组件和跨多级组件.Vue.js 2.x中,使用一个空的Vue实例作为中央事件总线(bus). 中央事件总 ...
- Vue非父子组件之间的通信
文章目录 非父子组件的通信 1.Provide和Inject 1.1基本使用 1.2处理响应式数据(了解) 2.全局事件总线 非父子组件的通信 此篇讲解的是, 在学习状态管理之前, 非父子间通信的方案 ...
- Vue非父子组件通信的几种方式
文章目录 1.provide和inject 1.1基本使用 1.2如何处理响应式数据 2.全局事件总线mitt库 2.1安装mitt库,封装eventbus.js工具类 2.2在其中一个组件中触发事件 ...
最新文章
- 在内网中使用maven_maven构建docker镜像三部曲之三:推送到远程仓库(内网和阿里云)-Go语言中文社区...
- 刷脸取件遭小学生破解,丰巢智能柜紧急下线相关功能
- 简单计算机面试题库及答案_计算机专业复试面试问题含答案
- 第jiu届蓝桥杯单片机省赛真题_第九届蓝桥杯单片机组省赛试题.pdf
- C语言排序名单(字典)
- mysql 39 t.id 39_ERROR 2003 (HY000): Can#39;t connect to MySQL server on #39;10.16.115.101#39; (1...
- QOS边界信任COS-交换机
- 无法支持python程序的编辑运行和调试_解决pycharm的Python console不能调试当前程序的问题...
- 【排序】动画演示10大排序算法
- 全解电磁流量计功能和精度性能
- 压摆率//电源抑制比//共模抑制比//直流增益、带宽和相位裕度//静态功耗和直流工作点
- C/C++实现matlab的imfill()函数
- coffeescript java 执行_新的coffeescript,运行cakefile时产生ENOENT错误
- Combo Box Control
- Nginx源码完全注释(1)ngx_alloc.h / ngx_alloc.c
- eclipse安装html编辑器插件
- public/private/protected的具体区别
- New UI-Hierarchy Viewer工具解析app的界面布局
- 三星4k3d电视测试软件,说出来你可能不信:3D、4K、曲面电视慎重购买
- 苹果市值还是第一,但似乎有些脆弱
热门文章
- 认识STM32最小系统
- 计算机网络(可当期末复习资料)
- mysql服务启动报错1607
- 一些大中型通用计算机的运算器既能进行,行政鉴定主要解决的是:A. 问题是否属于医疗事故的问题和赔偿调解问题B. 给双方当事人一个说法...
- Windows 删除恢复分区
- 非平凡空间 平凡空间
- 没学c语言可以学python_不学C语言直接零基础学Python怎么样?
- 【小程序】已有公众号认证,一步一步申请小程序(图文)
- 插画师的噩梦?文字描述到插画,一切都很简单(谷歌AI Disco Diffusioin)
- 云办公、云上课之后,智能家居也在这场“超长待机”中找到了新入口