Vue.JS快速上手(组件间的通信)
前言
Vue采用的是组件化思想,那么这些组件间是如何通信的呢?下面详细介绍一下。
所谓组件间通信,不单单是我们字面上理解的相互传递数据,这里还包括一个组件访问另一个组件的实例方法等,如父组件通过ref访问子组件实例成员,并实现传参。我们先来研究父子组件间是如何通信的。
一、父子组件通信
1. props实现父组件向子组件传递数据
父组件:

子组件:

2. $emit实现子组件向父组件传递数据
父组件:

子组件:

3.父组件通过ref访问子组件实例成员,并实现传参
父组件:

子组件:

总结一下,如果是数据传递的话:
父->子: props; 子->父: $emit
父组件通过ref访问子组件实例成员,并实现传参
二、兄弟组件间传递
什么是兄弟组件,也就是一个父组件下的多个子组件,他们之间如何实现数据传递呢?
1:通过父组件中介,进行数据传递
父组件:

子组件A:

子组件B:

2: 通过$parent访问父组件数据
父组件:

子组件A:

子组件B:

注意:A组件通过$emit传过来的值,在父组件定义后可以直接使用
3.总线模式(bus): 监听与订阅(事件)
1.在main.js添加vue类型原型属性, 使得所有vue实例(组件)都可以通过this来访问bus对象

2.谁调用谁就触发事件,将值往下传,下面的子子孙孙都可以通过$on接收

3.子组件监听Vue上的bus对象after-change,实现接收

三、陌生组件间数据传递
方案1:通过$root获取根组件实例

方案2:通过在Vue.prototype添加响应式对象

结尾
以上就是常用的组件通信方法,不过日常开发还是Vuex用的多一点,Vuex真正实现了共享数据,但这并不意味着Vuex就天下无敌了,要实现组件封装还是要用基本的方法来实现。
Vue.JS快速上手(组件间的通信)的更多相关文章
- Vue.JS快速上手(组件生命周期)
一.什么是组件 组成网页独立功能基本单元(片段), 复用.维护.性能, Vue.js中的组件就是一个Vue的实例,Vue中的组件包含data/methods/computed. 一个Vue.js的应用 ...
- Vue.JS快速上手(指令和实例方法)
1.声明式渲染 首先,我们要知道Vue是声明式渲染,那啥是声明式渲染,我们只需要告诉程序我们想要什么结果,其他的交给程序来做.与声明式渲染相对的是命令式渲染,即命令我们的程序去做什么,程序就会跟着你的 ...
- Vue.JS快速上手(Vue-router 实现SPA 开发)
一.什么是路由 URL -> 映射 -> 组件 Hash+onhashchange History.pushstate+replaceState+onpopstate 二.准备工作 组件 ...
- Vue.js学习 Item11 – 组件与组件间的通信
什么是组件? 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有 ...
- 第四节:Vue表单标签和组件的基本用法,父子组件间的通信
vue表单标签和组件的基本用法,父子组件间的通信,直接看例子吧. <!DOCTYPE html> <html> <head> <meta charset=&q ...
- 转: Vue.js——60分钟组件快速入门(上篇)
转自: http://www.cnblogs.com/keepfool/p/5625583.html Vue.js——60分钟组件快速入门(上篇) 组件简介 组件系统是Vue.js其中一个重要的概 ...
- Vue – 基础学习(2):组件间 通信及参数传递
Vue – 基础学习(2):组件间 通信及参数传递
- Vue.js 快速入门
什么是Vue.js vue是法语中视图的意思,Vue.js是一个轻巧.高性能.可组件化的MVVM库,同时拥有非常容易上手的API.作者是尤雨溪,写下这篇文章时vue.js版本为1.0.7 准备 我推荐 ...
- Vue.js 的精髓——组件
开篇:Vue.js 的精髓——组件 写在前面 Vue.js,无疑是当下最火热的前端框架 Almost,而 Vue.js 最精髓的,正是它的组件与组件化.写一个 Vue 工程,也就是在写一个个的组件. ...
随机推荐
- PAT乙级:1083 是否存在相等的差 (20分)
PAT乙级:1083 是否存在相等的差 (20分) 题干 给定 N 张卡片,正面分别写上 1.2.--.N,然后全部翻面,洗牌,在背面分别写上 1.2.--.N.将每张牌的正反两面数字相减(大减小), ...
- Spring Boot的MyBatis注解:@MapperScan和@Mapper(十七)
1.Spring Boot与MyBatis融合的矛盾问题: Spring家族的使命就是为了简化而生,但是随着Spring的发展壮大,有点事与愿违了.为了坚持初心,Spring家族祭出了一大杀器---S ...
- 🏆【Java技术专区】「探针Agent专题」Java Agent探针的技术介绍(1)
前提概要 Java调式.热部署.JVM背后的支持者Java Agent: 各个 Java IDE 的调试功能,例如 eclipse.IntelliJ : 热部署功能,例如 JRebel.XRebel. ...
- 创建一个计算器的函数calc含有两个数字,调用函数的函数传递一个函数,分别是实现加减乘除
function calc(num){ var n1=8; var n2=2; num(n1,n2); } //加 functiong jia(a,b){ console.log( a+b ); } ...
- Windows协议 LDAP篇 - 组&OU
LDAP搜索 LDAP查找 位操作 以userAccountControl为例,CN=User-Account-Control,CN=Schema,CN=Configuration,DC=muxue, ...
- 【LeetCode】738. 单调递增的数字
738. 单调递增的数字 知识点:字符串:贪心 题目描述 给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增. (当且仅当每个相邻位数上的数字 x ...
- 对抗防御之对抗样本检测(一):Feature Squeezing
引言 在之前的文章中,我们介绍了对抗样本和对抗攻击的方法.在该系列文章中,我们介绍一种对抗样本防御的策略--对抗样本检测,可以通过检测对抗样本来强化DNN模型.本篇文章论述其中一种方法:feature ...
- javaScript学习关于常用注册监听和对象的创建
JS 中的自定义对象(扩展内容) Object 形式的自定义对象 对象的定义: ...
- [.NET大牛之路 007] 详解 .NET 程序集
.NET大牛之路 • 王亮@精致码农 • 2021.07.13 上一篇我们介绍了 Roslyn 编译器,我们知道,我们编写的 C#/VB 代码经过 Roslyn 编译器编译后会生成程序集文件.按照之前 ...
- HashMap底层实现-基础
1.数据结构 1.7 数组+链表,键值对是以Entry内部类的数组存放的.键计算得到哈希值是该数组的下标.又称桶数组当存在哈希冲突时,会通过Entry类内部的成员变量 Entry<k,v> ...