首页 > 解决方案 > Vue js 在两个组件之间发送数据没有道具

问题描述

您好,我正在尝试找到一种方法,将一些布尔值从组件 A 发送到组件 B,而无需相互嵌套,无需道具,只需发送数据,单向绑定。

    export default {
       data: function {
       return {
       value1: false,
       value2:true
    }
 }
}

标签: vue.jsvuejs2vue-componentvuexvue-router

解决方案


用 Vuex 引入全局状态可能是解决这个问题的最好方法。

无需在系统中引入新的东西,您就可以使用事件总线来处理它。像这样引入侧通道的东西确实会增加你的应用程序的复杂性,但有时是必要的。

然后在你的组件中你像这样使用它们

// eventBus.js
import Vue from 'vue';
export const EventBus = new Vue();

// To setup your component to listen and update based on new value
import { EventBus } from './eventBus';
mounted() {
  EventBus.$on('newValue', (val) => this.something = val);
}

// To send out a new value 
EventBus.$emit('newValue', 5);

推荐阅读