一.使用广播的方式$emit(), $on()

1.创建js文件

import Vue from 'vue'export default new Vue()

组件A

import bus from '../../static/js/commonvue'mounted() {bus.$emit('componentsA', ‘组件A的值’);  //传值
}

组件B

import bus from '../../static/js/commonvue'mounted() {bus.$on('componentsA', (value) => {  // 接收值console.log("组件B:", value); })
}

用一个空的 Vue 实例(Bus)来做中央事件总线更加清晰也易于管理。但前提是两个组件必须渲染完成后才能实现通信,如果组件A销毁,那么将无法完成通讯。

二.使用vuex

我们可以把公用的数据使用vuex来进行存储,可以在项目中的任何一个组件里进行获取、进行修改,并且你的修改可以得到全局的响应变更。

Vuex的使用,首先是安装

npm install vuex –save

1.创建一个js文件

import Vue from 'vue'
import Vuex from 'vuex'Vue.use(Vuex)// 存储共用的数据
export default new Vuex.Store({state:{value:"vuex值"}
})

2.在main.js文件中引入

import store from '../static/js/commonvue'
new Vue({el: '#app',router,store,components: { App },template: '<App/>'
})

3.使用时直接调用
组件A

mounted() {this.$store.state.value = “组件A的值”;  //修改值
}

组件B

mounted() {this.msg = this.$store.state.value;//接收值
}
三.使用Vue.prototype

使用prototype原型挂载属性,作为全局变量

1.创建js文件,声明变量

let gl_value = undefined;
export default {gl_value};

2.main.js文件中添加

import gl_value from '../static/js/commonvue'
Vue.prototype.$GLOBAL = gl_value;

3.调用
组件A

mounted() {this.$GLOBAL.gl_value = “组件A的值”;  //修改值
}

组件B

mounted() {this.msg = this.$GLOBAL.gl_value;//接收值
}

VUE非父子组件之间通信的几种方式相关推荐

  1. Vue非父子组件之间的通信

    文章目录 非父子组件的通信 1.Provide和Inject 1.1基本使用 1.2处理响应式数据(了解) 2.全局事件总线 非父子组件的通信 此篇讲解的是, 在学习状态管理之前, 非父子间通信的方案 ...

  2. Vue非父子组件之间传值

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>非父子 ...

  3. VUE2.X组件之间通信的2种方式(针对子组件值变化去改变相应父组件的值)

    1. 第一种方式针对 针对单一变量 ,直接上代码 注意:所有事件名称不能用原有的事件名或者已经存在的事件名,如使用input做为事件名,不会报错,但是效果不正确. <div class=&quo ...

  4. bus.js非父子组件之间通讯

    bus.js非父子组件之间通讯 区别: bus.js就是一个公共的vue实例专门处理emit和on事件. vuex.js是做全局数据处理的,是指限定了对公共数据的使用处理方法,统一管控 vue中非父子 ...

  5. vue组件间通信的13种方式

    前言 vue是数据驱动视图更新的框架, 我们平时开发,都会把页面不同模块拆分成一个一个vue组件, 所以对于vue来说组件间的数据通信非常重要,那么组件之间如何进行数据通信的呢? 首先我们需要知道在v ...

  6. Vue中父子及非父子组件之间的通信方法

    Vue中父子及非父子组件之间的通信方法 父子组件之间的通信方法 父级->子级通信 (依赖单向数据绑定+props实现) Vue.component('Father', { //注册了含有data ...

  7. vue2.0 非父子组件之间的单一事件通信

    前言 vue官网指出: 通过使用事件中心,允许组件自由交流,无论组件处于组件树的哪一层.由于 Vue 实例实现了一个事件分发接口,你可以通过实例化一个空的 Vue 实例来实现这个目的. 也就是说 非父 ...

  8. vue父子组件及非父子组件之间的传值

    一.父组件向子组件传值 在vue中通常使用props向子组件传递数据 1.创建子组件,在src/components/文件夹下新建一个Child.vue 2.Child.vue的中创建props,然后 ...

  9. Vue非父子组件通信的几种方式

    文章目录 1.provide和inject 1.1基本使用 1.2如何处理响应式数据 2.全局事件总线mitt库 2.1安装mitt库,封装eventbus.js工具类 2.2在其中一个组件中触发事件 ...

最新文章

  1. Effective C++ -----条款06:若不想使用编译器自动生成的函数,就该明确拒绝
  2. 13 种 JavaScript 代码技巧
  3. python中函数的参数类型( 位置参数、关键字参数、默认值参数和可变长度参数)
  4. 如何通过7个Logback调整立即改善Java日志记录
  5. flowable6.4.2流程审批后涉及到的表
  6. 自动化测试,从入门到跑路1
  7. C#.Net 如何动态加载与卸载程序集(.dll或者.exe)0-------通过应用程序域AppDomain加载和卸载程序集...
  8. 遇到了arcgis server9.1 在web开发的问题
  9. android模拟摄像头,android模拟器如何连接摄像头
  10. 知乎高赞:当update修改数据与原数据相同时会再次执行吗?
  11. php 异步执行脚本,PHP语言实现脚本异步执行_PHP教程
  12. (转)人工智能步入金融领域的主流玩法
  13. VS2008 入门基本操作
  14. 基于cesium的三维城市建筑可视化系统(shp数据导入cesium的三种可行方法)
  15. python实验收获与反思 100字_期中考试总结与反思100字
  16. Filco圣手二代双模蓝牙机械键盘|科大讯飞鼠标连接Mac方法
  17. R语言解决数据不平衡问题
  18. [学习笔记]ARM_DSP库——基础函数(相反数、偏移、移位、减法、比例因子)
  19. linux单片机用什么数据库,基于ARM-Linux的SQLite嵌入式数据库的研究 -单片机-电子工程世界网...
  20. 使用不同的TCP端口架设多个网站

热门文章

  1. 利用递归函数求斐波那契数列(兔子序列) 1、1、2、3、5、8、13、21...
  2. cmakelist 常见用法
  3. PCB走线和过孔载流问题详解
  4. 浅谈全国大学生智能车竞赛-摄像头组图像处理及控制算法
  5. 最新盲盒商城完整运营源码/对接免签支付接口
  6. 文件管理(番外篇)——文本处理工具
  7. 神策数据丨企业微信数字化营销解决方案
  8. 浅谈产品设计五大层次
  9. 安装Adams 2019遇到的坑
  10. 【OpenCV】 外接矩形、最小外接矩形、多边形拟合、外接圆