Vue Bus总线详解

Vue bus总线,一个轻量级的事件中心,常用于跨组件通信,是Vue.js官方推荐的一种应用程序架构方式。Vue Bus总线提供了想不到的灵活性,可以被用于很多不同场景,在这篇文章中,我会从几个方面详细讲解Vue Bus总线的用法和原理。

一、Vue Bus总线简介

Vue Bus总线就是一个事件系统,用于组件之间的通信,值得一提的是,Vue Bus总线既可以当做事件系统使用,也可以当做数据或消息的传递中心。Vue Bus总线发起事件的组件成为发送组件,监听并响应事件的组件成为接收组件

二、Vue Bus总线实现

Vue Bus总线的实现有很多种,这一节中我们将介绍两种主要方式。

1. Event Bus

Vue Bus总线的最简单的实现是通过Event Bus。Event Bus是一个Vue实例,有自己的属性、方法和生命周期函数,它可以被注册,也可以被注销。

    
        const EventBus = new Vue()
        // 声明
        EventBus.$on('eventName', (arg) => {
            console.log(arg)
        })
        // 触发
        EventBus.$emit('eventName', 'Hello World!')
    

2. Provide/Inject

另一种实现方式是使用Vue提供的Provide/Inject,这种方式与Event Bus类似,但是Provide/Inject是使用了Vue自带的provide和inject选项,可自动化继承。provide选项是一个函数,返回一个对象作为注册变量。inject选项可以在嵌套层级即可使用。

    
        const EventBus = {
            install(Vue) {
                Vue.prototype.$bus = new Vue()
            }
        }
        export default EventBus

        // 在发送组件中
        methods: {
            handleClick() {
                this.$bus.$emit('eventName', 'Hello World!')
            }
        }

        // 在接收组件中
        inject: ['$bus'],
        created() {
            this.$bus.$on('eventName', (arg) => {
                console.log(arg)
            })
        }
    

三、Vue Bus总线应用

1. 父子组件之间的通信

父子组件间通信一般通过props和事件调用实现,但是当嵌套的组件层次很多的时候,这种方式会变得很繁琐,这时候使用Vue Bus总线会很方便。

    
// 父组件

原创文章,作者:RQAYW,如若转载,请注明出处:https://www.506064.com/n/372525.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
RQAYWRQAYW
上一篇 2025-04-24 06:40
下一篇 2025-04-24 06:40

相关推荐

  • 使用Vue实现前端AES加密并输出为十六进制的方法

    在前端开发中,数据传输的安全性问题十分重要,其中一种保护数据安全的方式是加密。本文将会介绍如何使用Vue框架实现前端AES加密并将加密结果输出为十六进制。 一、AES加密介绍 AE…

    编程 2025-04-29
  • Vue TS工程结构用法介绍

    在本篇文章中,我们将从多个方面对Vue TS工程结构进行详细的阐述,涵盖文件结构、路由配置、组件间通讯、状态管理等内容,并给出对应的代码示例。 一、文件结构 一个好的文件结构可以极…

    编程 2025-04-29
  • Vue3的vue-resource使用教程

    本文将从以下几个方面详细阐述Vue3如何使用vue-resource。 一、安装Vue3和vue-resource 在使用vue-resource前,我们需要先安装Vue3和vue…

    编程 2025-04-27
  • ThinkPHP6 + Vue.js: 不使用Fetch的数据请求方法

    本文将介绍如何在ThinkPHP6和Vue.js中进行数据请求,同时避免使用Fetch函数。 一、AJAX:XMLHttpRequest的基础使用 在进行数据请求时,最基础的方式就…

    编程 2025-04-27
  • Vue模拟按键按下

    本文将从以下几个方面对Vue模拟按键按下进行详细阐述: 一、Vue 模拟按键按下的场景 在前端开发中,我们常常需要模拟按键按下的场景,比如在表单中填写内容后,按下“回车键”提交表单…

    编程 2025-04-27
  • 开发前端程序,Vue是否足够?

    Vue是一个轻量级,高效,渐进式的JavaScript框架,用于构建Web界面。开发人员可以使用Vue轻松完成前端编程,开发响应式应用程序。然而,当涉及到需要更大的生态系统,或利用…

    编程 2025-04-27
  • 如何在Vue中点击清除SetInterval

    在Vue中点击清除SetInterval是常见的需求之一。本文将介绍如何在Vue中进行这个操作。 一、使用setInterval和clearInterval 在Vue中,使用set…

    编程 2025-04-27
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25

发表回复

登录后才能评论