vue bus全局事件中心简单Demo详解

yizhihongxing

Vue Bus全局事件中心简单Demo详解

什么是Vue Bus?

Vue Bus是一种在Vue应用程序中使用的全局事件总线(Event Bus),它提供了一种简单而有效的方法来管理应用程序中的组件之间的通信。

如何使用Vue Bus?

使用Vue Bus非常简单。首先,我们需要在项目中安装Vue Bus:

npm install vue-bus --save

然后,我们需要在Vue项目中引入并使用Vue Bus:

import Vue from 'vue'
import VueBus from 'vue-bus'

Vue.use(VueBus)

现在,我们可以在任何Vue组件中使用Vue Bus了。

Vue Bus的常用方法

Vue Bus提供了以下常用方法:

  • $on(event, callback):监听一个事件。
  • $once(event, callback):监听一个一次性事件。
  • $emit(event, args):触发一个事件,并传递其参数。
  • $off(event, callback):取消事件监听。

示例1:父子组件传值

下面我们演示一个简单的Vue Bus示例,用于在父组件和子组件之间传递数据。在这个例子中,我们将创建一个父组件Parent,一个子组件Child,然后在父组件中使用Vue Bus将数据传递给子组件。

<template>
  <div>
    <child-component></child-component>
  </div>
</template>

<script>
import ChildComponent from '@components/ChildComponent.vue';

export default {
  name: 'Parent',
  methods: {
    sendData(data) {
      // 触发事件,并传递数据
      this.$bus.$emit('send-data', data);
    }
  },
  components: {
    ChildComponent,
  },
};
</script>
<template>
  <div>{{ receivedData }}</div>
</template>

<script>
export default {
  name: 'ChildComponent',
  data() {
    return {
      receivedData: '',
    };
  },
  created() {
    // 监听事件,接收传递的数据
    this.$bus.$on('send-data', (data) => {
      this.receivedData = data;
    });
  },
};
</script>

在这个例子中,我们从父组件中的sendData()方法中触发一个名为 send-data 的事件,并将数据传递给子组件。在子组件中,我们使用 $bus.$on() 方法来监听事件,并接收传递的数据。

示例2:非父子组件传值

在Vue中,如果我们需要在非父子组件之间共享数据,通常会使用状态管理器(如Vuex)。但是,在某些场景下,使用Vue Bus也是一种更加方便快捷的做法。

下面我们演示一个Vue Bus在非父子组件之间传值的示例。在这个例子中,我们创建了三个组件:Sender、Receiver1和Receiver2。点击Sender组件中的按钮,将向两个接收组件分别发送不同的数据。

<template>
  <div>
    <button @click="sendData1">Send to Receiver1</button>
    <button @click="sendData2">Send to Receiver2</button>
  </div>
</template>

<script>
export default {
  name: 'Sender',
  methods: {
    sendData1() {
      // 触发事件,传递数据
      this.$bus.$emit('send-data-1', 'Data for Receiver1');
    },
    sendData2() {
      // 触发事件,传递数据
      this.$bus.$emit('send-data-2', 'Data for Receiver2');
    },
  },
};
</script>
<template>
  <div>{{ receivedData }}</div>
</template>

<script>
export default {
  name: 'Receiver1',
  data() {
    return {
      receivedData: '',
    };
  },
  created() {
    // 监听事件,接收传递的数据
    this.$bus.$on('send-data-1', (data) => {
      this.receivedData = data;
    });
  },
};
</script>
<template>
  <div>{{ receivedData }}</div>
</template>

<script>
export default {
  name: 'Receiver2',
  data() {
    return {
      receivedData: '',
    };
  },
  created() {
    // 监听事件,接收传递的数据
    this.$bus.$on('send-data-2', (data) => {
      this.receivedData = data;
    });
  },
};
</script>

在这个例子中,我们分别在Sender组件中触发了两个事件,并向两个接收组件分别传递了不同的数据。Receiver1和Receiver2组件分别监听了这两个事件,并接收了传递过来的数据。

这就是Vue Bus的简单示例说明。除此之外,Vue Bus还有更多的用法和方法,可以根据实际需求进行深入了解和使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue bus全局事件中心简单Demo详解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 一文详解uniapp中如何使用easycom自定义组件

    一、概述 easycom是基于uni-app框架开发的自定义组件解决方案,可以帮助开发者在uni-app中快速开发自定义组件。本篇文章将详细讲解如何使用easycom自定义组件。 二、准备工作 在进行easycom自定义组件之前,需要先安装“uni-center-cli”、 “vue-cli-plugin-easycom”和“easycom-cli”三个插件…

    Vue 2023年5月28日
    00
  • vue 导出文件,携带请求头token操作

    让我详细讲解一下 “vue 导出文件,携带请求头token操作” 的完整攻略。 导出文件 要导出文件,我们可以利用浏览器提供的 download 和 Blob API 来实现。具体的步骤如下: 创建一个 Blob 对象,存储文件的内容。我们可以使用 new Blob() 方法来创建一个 Blob 实例。通常我们需要将要导出的内容以字符串形式传递给 Blob …

    Vue 2023年5月27日
    00
  • Vue-cli打包后如何本地查看的操作

    当你使用Vue-cli进行前端开发时,你可以在本地使用devServer插件启动一个本地服务器进行开发调试,但是在打包完成后,你可能需要查看打包后的文件在本地的运行效果。下面我来分享一下如何在本地查看Vue-cli打包后的文件。 1. 打包Vue-cli应用 首先,你需要使用Vue-cli将你的应用进行打包。你可以使用以下命令进行打包: npm run bu…

    Vue 2023年5月27日
    00
  • VueX安装及使用基础教程

    VueX是Vue.js的状态管理库,它可以帮助我们在应用程序中管理共享状态。下面是VueX安装及使用基础教程的完整攻略。 安装 # 使用npm安装 npm install vuex –save # 使用yarn安装 yarn add vuex 使用 首先,在Vue.js中使用VueX,我们需要将其添加到我们的Vue.js应用程序中。可以使用以下代码在Vue…

    Vue 2023年5月27日
    00
  • vue自定义表单生成器form-create使用详解

    Vue自定义表单生成器form-create使用详解 1. 什么是form-create? form-create是一个基于Vue.js的自定义表单生成器。它可以根据预设的模板或者自定义的UI组件来动态生成表单,方便开发者快速构建各种表单,能够提高开发效率。 2. 如何使用form-create? 2.1 安装 首先,我们需要安装form-create,可以…

    Vue 2023年5月28日
    00
  • Vue组件生命周期运行原理解析

    Vue组件生命周期运行原理解析攻略 Vue.js是一款流行的JavaScript框架。组件是Vue.js的核心概念之一。Vue组件有自己的生命周期,Vue.js框架提供了一些回调函数接口,当组件的生命周期发生变化时,这些回调函数接口将会自动被触发。本篇攻略将详细介绍Vue组件生命周期的运行原理。 Vue组件生命周期介绍 Vue组件生命周期分为8个阶段: be…

    Vue 2023年5月29日
    00
  • vue使用vue-video-player插件播放视频的步骤讲解

    好的!下面我将为你详细讲解如何使用vue-video-player插件在Vue项目中播放视频的步骤。 1. 安装vue-video-player插件 在终端输入以下命令安装vue-video-player插件: npm install vue-video-player –save 2. 引入vue-video-player组件 在Vue项目的main.js…

    Vue 2023年5月28日
    00
  • vue路径写法之关于./和@/的区别

    当使用Vue构建项目时,路径写法是必不可少的知识点,对于路径写法中的”./”与”@/”的区别,以下是详细讲解: 1. 相对路径”./” 使用相对路径”./”,我们可以引用同一目录下的文件或目录。例如,有以下文件目录结构: ├── src │ ├── components │ │ ├── a.vue │ │ ├── b.vue │ ├── views │ │ …

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部