Props配置

原理:通过props配置,进行父子组件间的通信,跨父子通信需要其他组件进行过渡。

使用:

传递方在标签中添加传递内容

<Son :newName="name"/>

接收方在props配置中接收

props:['newName']     // 简单接收
props:{
sex:String,
age:Number
} // 接收的同时,进行数据类型检测

适用:父子通信

全局事件总线

原理:Vue 原型对象上包含事件处理的方法,VueComponent.prototype.__ proto__ === Vue.prototype,所有组件对象都能看到 Vue 原型对象上的属性和方法。

全局事件总线:包含事件处理相关方法的对象  + 可以得到所有的组件 + 唯一。

使用:

指定事件总线对象

new Vue({
beforeCreate () {
// 尽量早的执行挂载全局事件总线对象的操作
Vue.prototype.$globalEventBus = this
},
}).$mount('#App')

绑定自定义事件监听

this.$globalEventBus.$on(eventName, listener)

分发自定义事件

this.$globalEventBus.$emit(eventName, data)

绑定事件监听, 但只能处理一次

this.$globalEventBus.$once(eventName, listener)

解绑自定义事件监听

this.$globalEventBus.$off(eventName)

适用:兄弟通信、跨级通信。

消息订阅发布

原理:这种方式的思想与全局事件总线很相似,需要引入一个消息订阅与发布的第三方实现库: PubSubJS

订阅消息 --对应绑定事件监听、 发布消息 --分发事件、取消消息订阅 --解绑事件监听

使用:

下载第三方库

npm install -S pubsub-js

引入第三方库

import PubSub from 'pubsub-js'

订阅消息

PubSub.subscribe('msgName', functon(msgName, data){})

发布消息, 触发订阅的回调函数调用

PubSub.publish('msgName', data)

取消消息的订阅

PubSub.unsubscribe(token)

vue 组件间的几种通信方式的更多相关文章

  1. Vue组件间通信6种方式

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

  2. 应用六:Vue之父子组件间的三种通信方式

    (注:本文适用于有一定Vue基础或开发经验的读者,文章就知识点的讲解不一定全面,但却是开发过程中很实用的) 组件是Vue的核心功能之一,也是我们在开发过程中经常要用到的.各个独立的组件之间如何进行数据 ...

  3. vue组件通信的几种方式

    最近用vue开发项目,记录一下vue组件间通信几种方式 第一种,父子组件通信 一.父组件向子组件传值 1.创建子组件,在src/components/文件夹下新建一个Child.vue 2.Child ...

  4. Vue 组件间传值

    前言 Vue 作为现在比较火的框架之一,相信您在使用的过程中,也会遇到组件间传值的情况,本文将讲解几种 Vue 组件间传值的几种方法,跟着小编一起来学习一下吧! 实现 注意: 学习本文,需要您对 Vu ...

  5. vue组件间通信六种方式(完整版)

    本文总结了vue组件间通信的几种方式,如props. $emit/ $on.vuex. $parent / $children. $attrs/ $listeners和provide/inject,以 ...

  6. Vue组件间通信-Vuex

    上回说到Vue组件间通讯,最后留了一个彩蛋~~~Vuex.Vuex是另一种组件通讯的方法,这节来说说Vuex(store仓库). 首先Vuex需要安装,安装的方式有很多,在这里就不一一细说了.我是通过 ...

  7. 黑马vue---56-58、vue组件创建的三种方式

    黑马vue---56-58.vue组件创建的三种方式 一.总结 一句话总结: 不论是哪种方式创建出来的组件,组件的 template 属性指向的模板内容,必须有且只能有唯一的一个根元素 1.使用 Vu ...

  8. Vue组件间通信方式到底有几种

    1. 前言 Vue的一个核心思想就是组件化.所谓组件化,就是把页面拆分成多个组件 (component),每个组件依赖的 CSS.JavaScript.模板.图片等资源放在一起开发和维护.组件是资源独 ...

  9. Vue组件间通信方式

    一.Props传递数据 在父组件中使用子组件,本质通过v-bind绑定属性传入子组件,子组件通过props接收父组件传入的属性 <template> <div> 父组件:{{m ...

随机推荐

  1. chmod 权限-rw-r--r--表示什么含义

    感谢原文作者:bugcoder321 原文链接:https://blog.csdn.net/li_canhui/article/details/89452134 在linux中,有时候可以看到一个文件 ...

  2. hitTest练习

    业务逻辑1:         底部一个按钮, 按钮的上面有一个View,遮挡在按钮的上面.         点击View时, View接收事件,当发现点击的点在按钮的位置时, 让底部的按钮处理事件. ...

  3. linux 多个C源文件编译

    转载请注明来源:https://www.cnblogs.com/hookjc/ 如果有多个源文件,基本上有两种编译方法: [假设有两个源文件为test.c和testfun.c] 1. 多个文件一起编译 ...

  4. 【NetCore】依赖注入的一些理解与分享

    依赖注入 DI 前言 声明:我是一个菜鸟,此文是自己的理解,可能正确,可能有误.仅供学习参考帮助理解,如果直接拷贝代码使用造成损失概不负责. 相关的文章很多,我就仅在代码层面描述我所理解的依赖注入是个 ...

  5. etcdserver: mvcc: database space exceeded

    文章目录 查看节点状态 获取旧版本号 压缩旧版本 清理碎片 再次查看节点状态 清楚告警 k8s的apiserver组件重启失败,通过journalctl -xeu kube-apiserver命令查看 ...

  6. 私有化轻量级持续集成部署方案--04-私有代码仓库服务-Gitea

    提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记 企业级最流行的私有代码仓库是 Gitlab, 一开始我也打算部署 Gitlab作为私有代码仓库. 但部署完 d 成后 ...

  7. (反射+内省机制的运用)简单模拟spring IoC容器的操作

    简单模拟spring IoC容器的操作[管理对象的创建.管理对象的依赖关系,例如属性设置] 实体类Hello package com.shan.hello; public class Hello { ...

  8. blender获取任意位置建筑白模

    在前端3d可视化开发过程中有时会需要到白模,特别是gis开发,可能会用到各个城市的白模,其实可以使用Blender配合BlenderGis插件来提取osm中的白模.具体步骤如下: 安装软件 在此处下载 ...

  9. 为什么越来越多的企业选择商业智能BI?

    ​在大数据,云计算,工业4.0,物联网等概念概念炒得飞起的年代,现在已经变成某宝天天给我推送我感兴趣的东西.由此可见数据和科技正在慢慢深刻地改变我们的生活. 随着时代的发展,各个企业的内部决策方式也是 ...

  10. Bash初识与常用命令

    转至:https://www.cnblogs.com/baishou/p/13850258.html Shell介绍 Shell在中文的意思是壳,寓意是操作系统的壳.Shell是指一种应用程序,这个应 ...