本文主要介紹vue2.0s中eventBus實作兄弟元件通訊的範例程式碼,具有一定的參考價值,有興趣的小夥伴們可以參考一下,希望能幫助大家。
vue1.0中,元件之間的通訊主要透過vm.$dispatch沿著父鏈向上傳播和用vm.$broadcast向下廣播來實現。然而在vue2.0中,已經廢除了這種用法。
vuex加入後,對組件之間的通訊有了更清晰的操作,對於中大型的專案來說,一開始就把vuex的使用計畫在內是明智的選擇。
然而在一些小型的項目,或者說像我這樣寫到一半才發現vue2.0用不了$.broadcast和$dispatch的人來說,就需要一個比較便捷的解決方法。那麼,eventBus的作用就體現出來了。
主要是現實途徑是在要相互通訊的兄弟元件之中,都引入一個新的vue實例,然後透過分別呼叫這個實例的事件觸發和監聽來實現通訊和參數傳遞。
這裡來看一個簡單的範例:
例如,我們這裡有三個元件,main.vue、click.vue、show.vue。 click和show是父元件main下的兄弟元件,而click是透過v-for在父元件中遍歷在了多個清單項目中。這裡要實現,click元件中觸發點擊事件後,由show元件將點擊的是哪個dom元素console出來。
#首先,我們加入click元件點擊事件
<p class="click" @click.stop.prevent="doClick($event)"></p>
想要在doClick()方法中,實作對show元件的通信,我們需要新建一個js文件,來創建出我們的eventBus,我們把它命名為bus.js
import Vue from 'vue'; export default new Vue();
這樣我們就創建了一個新的vue實例。接下來我們在click元件和show元件中import它。
import Bus from 'common/js/bus.js';
接下來,我們在doClick方法中,來觸發一個事件:
methods: { addCart(event) { Bus.$emit('getTarget', event.target); } }
這裡我們在click元件中每次點擊,都會在bus中觸發這個名為'getTarget'的事件,並將點擊事件的event.target順著事件傳遞出去。
接著,我們要在show元件中的created()鉤子中呼叫bus監聽這個事件,並接收參數:
created() { Bus.$on('getTarget', target => { console.log(target); }); }
這樣,在每次click元件的點擊事件中,就會把event.target傳遞到show中,並console出來。
所以eventBus的使用還是非常方便的,但是如果是中大型項目,通訊比較複雜,還是建議大家直接使用vuex。
相關推薦:
以上是vue2.0s中eventBus實作兄弟組件通訊詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Vue是目前最流行的前端框架之一,而VUE3则是Vue框架的最新版本,相较于VUE2,VUE3具备了更高的性能和更出色的开发体验,成为了众多开发者的首选。在VUE3中,使用extends继承组件是一个非常实用的开发方式,本文将为大家介绍如何使用extends继承组件。extends是什么?在Vue中,extends是一个非常实用的属性,它可以用于子组件继承父

Vue怎么通过JSX动态渲染组件?下面本篇文章给大家介绍一下Vue高效通过JSX动态渲染组件的方法,希望对大家有所帮助!

在VSCode中开发Vue/React组件时,怎么实时预览组件?本篇文章就给大家分享一个VSCode 中实时预览Vue/React组件的插件,希望对大家有所帮助!

在现代Web开发中,组件化是一个极受欢迎的开发模式。而Vue.js则是一个非常适合组件化的前端框架。在这篇文章中,我们将介绍如何使用Vue.js创建一个仿照片墙组件。在开始之前,我们需要明确一些准备工作。首先,我们需要安装Vue.js。安装的方法非常简单,只需在终端中输入以下命令:npminstallvue安装完成后,我们可以创建一个名为

VUE3开发入门教程:使用组件实现分页分页是一个常见的需求,因为在实际开发中,我们往往需要将大量的数据分成若干页以展示给用户。在VUE3开发中,可以通过使用组件实现分页功能,本文将介绍如何使用组件实现简单的分页功能。1.创建组件首先,我们需要创建一个分页组件,使用“vuecreate”命令创建VUE项目,并在src/components目录下创建Pagin

Vue是一款优秀的前端框架,在处理大量数据时,分页组件是必不可少的。分页组件可以使页面更加整洁,同时也可以提高用户体验。在Vue中,实现一个分页组件并不复杂,本文将介绍Vue如何实现分页组件。一、需求分析在实现分页组件前,我们需要对需求进行分析。一个基本的分页组件需要具有以下功能:展示当前页数、总页数以及每页展示条数点击分页按钮可以切换至不同页数展示当前页

Vue.js是一款流行的前端JavaScript框架,它提供了一种简单易用的方式来构建动态网页应用程序。Vue.js的主要特点是其模块化的设计和可插拔的组件系统。这使得开发者可以轻松地创建可复用的组件,从而提高了应用程序的重用性和可维护性。在本文中,我们将重点介绍VUE3初学者如何使用Vue.js组件组合实现可复用组合。Vue.js组件是一个完整的封装元素,

在现代Web开发中,UI组件是不可或缺的一部分。Vue.js框架中有许多优秀的UI组件库,如Element-UI、Vuetify、AntDesignVue等。这些组件库提供了许多易于使用的组件,可以帮助我们更加高效地创建Web应用程序。本文将介绍一些常用的VueUI组件,以及使用这些组件的技巧和实用技能。一、El-TableEl-Table是Eleme


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Atom編輯器mac版下載
最受歡迎的的開源編輯器