首页 > 解决方案 > 我可以从我的标题中触发另一个组件的功能吗?

问题描述

您好,我有一个关于 vue 路由和树如何工作的问题。我有我的父路由器,我的路由器视图和标题在同一级别。

我有一些功能我想从我的标题触发到我的路由器视图中称为仪表板的路由

例如:header.vue

<a href="#" @click.prevent="update()"> click me to update dashboard </a>

仪表板.vue

<p> {{datafrom filldata}} </p>

  methods: { 
   fillDataToP() {
    function to fill data
   }
  }

这在vue中可能吗?

标签: javascripteventsvue.jsvuejs2

解决方案


您可以在 vuejs 中使用 EventBus 功能。

在你的main.js文件中添加

const EventBus = new Vue()

Vue.prototype.$bus = EventBus;

从您的header.vue文件中,您现在可以发出一个事件:

例子this.$bus.emit('someString', SomeObjectToPass);

然后在您的设备上,Dashboard.vue您可以使用以下命令收听事件:

this.$bus.on('sameStringAsInEmit', () => {

// Fill Data

})


推荐阅读