Vue 組件之間的通信

在 Vue.js 中,組件是構建應用程序的基本單位。然而,當你的應用程序變得復雜時,組件之間的通信變得至關重要。本文將介紹幾種 Vue 組件之間通信的方式,幫助你更好地管理和組織代碼。

父子組件通信

父組件可以通過 props 向子組件傳遞數據,子組件則可以通過 $emit 向父組件發送事件。

通過 props 傳遞數據

父組件通過 props 向子組件傳遞數據:

<!-- 父組件 -->
<template><div><child-component :message="parentMessage"></child-component></div>
</template><script>
import ChildComponent from './ChildComponent.vue';export default {components: {ChildComponent},data() {return {parentMessage: 'Hello from Parent!'};}
};
</script>

子組件通過 props 接收數據:

<!-- 子組件 -->
<template><div><p>{{ message }}</p></div>
</template><script>
export default {props: ['message']
};
</script>
通過 $emit 發送事件

子組件通過 $emit 向父組件發送事件:

<!-- 子組件 -->
<template><div><button @click="sendMessage">Send Message</button></div>
</template><script>
export default {methods: {sendMessage() {this.$emit('message-sent', 'Hello from Child!');}}
};
</script>

父組件監聽子組件的事件:

<!-- 父組件 -->
<template><div><child-component @message-sent="handleMessage"></child-component></div>
</template><script>
import ChildComponent from './ChildComponent.vue';export default {components: {ChildComponent},methods: {handleMessage(message) {console.log(message);  // 輸出 'Hello from Child!'}}
};
</script>
兄弟組件通信

兄弟組件之間通常通過事件總線(Event Bus)或 Vuex 狀態管理來實現通信。

使用事件總線

創建一個事件總線:

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

在兄弟組件中使用事件總線:

<!-- 組件 A -->
<template><div><button @click="sendMessage">Send Message</button></div>
</template><script>
import { EventBus } from './event-bus.js';export default {methods: {sendMessage() {EventBus.$emit('message-sent', 'Hello from Component A!');}}
};
</script>
<!-- 組件 B -->
<template><div><p>{{ message }}</p></div>
</template><script>
import { EventBus } from './event-bus.js';export default {data() {return {message: ''};},created() {EventBus.$on('message-sent', (message) => {this.message = message;});}
};
</script>
使用 Vuex

使用 Vuex 是管理應用程序狀態的最佳實踐。首先安裝并配置 Vuex:

// store.js
import Vue from 'vue';
import Vuex from 'vuex';Vue.use(Vuex);export default new Vuex.Store({state: {message: ''},mutations: {setMessage(state, message) {state.message = message;}},actions: {updateMessage({ commit }, message) {commit('setMessage', message);}}
});

在組件中使用 Vuex:

<!-- 組件 A -->
<template><div><button @click="sendMessage">Send Message</button></div>
</template><script>
export default {methods: {sendMessage() {this.$store.dispatch('updateMessage', 'Hello from Component A!');}}
};
</script><!-- 組件 B -->
<template><div><p>{{ message }}</p></div>
</template><script>
export default {computed: {message() {return this.$store.state.message;}}
};
</script>
父子組件通信與兄弟組件通信總結

理解 Vue 組件之間的通信是開發復雜應用程序的關鍵。通過 props$emit 進行父子組件通信,以及使用事件總線或 Vuex 進行兄弟組件通信,你可以更有效地管理和組織代碼。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/23353.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/23353.shtml
英文地址,請注明出處:http://en.pswp.cn/web/23353.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

離線下載安裝TTS的步驟

要離線下載安裝 TTS 模塊&#xff0c;需要先在有網絡的環境下下載所有所需的依賴項&#xff0c;然后將這些文件轉移到目標環境中進行安裝。以下是具體步驟&#xff1a; 步驟 1&#xff1a;在有網絡的環境下下載依賴項 創建一個目錄來存放下載的包&#xff1a; mkdir TTS_deps下…

在線標注流程

文章目錄 在線標注流程標注方法 在線標注流程 登錄地址&#xff1a;http://7a27c5e078f644a2a9b734603913c65e.login.bce.baidu.com 出現頁面&#xff1a; 登錄名&#xff1a; 三個中任意一個 密碼&#xff1a;ZNSJ123a 登錄之后叉掉。再打開這個網站&#xff1a;https://…

【ZYNQ】CPU 私有定時器

Zynq 的每個 Cortex-A9 處理器都有自己的專用 32 位定時器和 32 位看門狗定時器&#xff0c;兩個處理器共享一個全局 64 位定時器&#xff0c;這些計時器的時鐘頻率始終為 CPU 頻率的 1/2。本文主要介紹 Zynq 芯片 CPU 私有定時器的工作特性&#xff0c;以及私有定時器的基本使…

selenium中,如何使用選擇框

html5 一個多選下拉框&#xff0c;沒有默認選 一個單選下拉狂&#xff0c;默認“張桐桐” <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>選擇框</title> </head> <body><l…

我是大學生,應該選系統運維方向,還是web開發方向?

選擇系統運維方向還是Web開發方向取決于你的興趣、職業目標和個人技能。以下是對這兩個方向的詳細對比和建議&#xff0c;幫助你做出更明智的選擇 雙方比較 &#x1f926;?♀?系統運維方向 優點&#xff1a; 穩定性&#xff1a;系統運維工作通常比較穩定&#xff0c;許多…

【Power Compiler手冊】5.Verilog翻轉活動示例

Verilog切換活動示例 以下示例展示了使用Verilog進行RTL(寄存器傳輸級)和門級描述時生成的切換活動數據。 RTL示例 這個Verilog RTL示例包括以下內容: RTL設計描述:定義了電路的功能和行為,但不涉及具體的門級實現細節。RTL測試臺(testbench):用于仿真和測試RTL設計…

【問題復盤】第三方接口變慢導致服務崩潰

一、事件經過 -1、一個不在公司的下午&#xff0c;接到客戶投訴&#xff0c;說平臺不能訪問了。 0、介入調查&#xff0c;發現服務器http請求無法訪問&#xff0c;https請求卻可以正常訪問&#xff0c;一時有些無法理解&#xff1b;&#xff08;后來發現&#xff0c;http和htt…

在gateway網關中使用feign遠程調用

由于 gateway 采用 spring-boot-starter-webflux 異步的 web 組件&#xff0c;該組件和 spring-boot-starter-web 有較大區別&#xff0c;我們的 openFeign 對 spring-boot-starter-web 比較契合&#xff0c;而對于 前者則需要做一些適配。 編寫如下配置類 SpringBootConfigur…

網絡編程(八)

網絡編程&#xff08;八&#xff09; 數據庫數據庫的分類基于嵌入式的數據庫什么是SQLite?為什么使用SQLite?sqlite3數據庫的安裝 sqlite3中的點命令.open 數據庫文件名字.tables [數據庫文件名].schema 表名.database.quit.head on.mode column SQLite數據庫中的數據類型SQL…

《混凝土壩安全監測資料整編規程》的深入解讀與實際應用

在水利工程中&#xff0c;混凝土壩作為重要的建筑物&#xff0c;其安全監測工作至關重要。為了確保監測工作的準確性和有效性&#xff0c;制定一套規范的混凝土壩安全監測資料整編規程顯得尤為重要。本文將對《混凝土壩安全監測資料整編規程》進行深入解讀&#xff0c;并探討其…

泛型基礎及深入

泛型深入 泛型定義&#xff1a; JDK5引入的特性&#xff0c;可以在編譯階段約束操作的數據類型&#xff0c;并進行檢查 泛型格式&#xff1a; <數據類型> 注意&#xff1a;泛型只能支持引用數據類型 優勢&#xff1a; 統一數據類型&#xff1b; 把運行時期的問題提前到…

Linux中 .PHONY 和 all 在 Makefile 中的作用

1 .PHONY 和 all .PHONY 是 GNU make 工具中的一個特殊指令&#xff0c;用于指示某個目標是一個偽目標。偽目標并不對應于實際的文件&#xff0c;而是用來執行一系列命令的標識符。使用 .PHONY 的好處包括避免與現有文件同名造成的沖突&#xff0c;以及提高 make 的執行效率&am…

快速排序(Quick Sort)(C語言) 超詳細解析!!!

生活的本質是什么呢? 無非就是你要什么就不給你什么. 而生活的智慧是什么呢? 是給你什么就用好什么. ---馬斯克 索引 一. 前言二. 快速排序的概念三. 快速排序的實現1. hoare2. 挖坑法3. 前后指針法 總結 正文開始 一. 前言 接上文, 前面我們了解了插入排序, 與優化版本希爾…

ROS IMU慣性測量單元消息包

ROS IMU慣性測量單元消息包 IMU工作原理與作用 IMU&#xff08;Inertial Measurement Unit&#xff0c;慣性測量單元&#xff09;是一種重要的傳感器&#xff0c;用于測量和報告一個物體的特定物理量&#xff0c;包括加速度、角速度和&#xff08;在某些情況下&#xff09;磁…

100道面試必會算法-31-字母異位詞分組

100道面試必會算法-31-字母異位詞分組 給你一個字符串數組&#xff0c;請你將 字母異位詞 組合在一起。可以按任意順序返回結果列表。 字母異位詞 是由重新排列源單詞的所有字母得到的一個新單詞。 示例 1: 輸入: strs ["eat", "tea", "tan"…

HQL面試題練習 —— 向用戶推薦好友喜歡的音樂

目錄 1 題目2 建表語句3 題解 題目來源&#xff1a;騰訊。 1 題目 現有三張表分別為&#xff1a; 用戶關注表 t_follow(user_id,follower_id)記錄用戶ID及其關注的人ID&#xff0c;請給用戶1 推薦他關注的用戶喜歡的音樂名稱 ------------------------ | user_id | follower…

六月可以閉眼入的寵物空氣凈化器:希喂、安德邁、霍尼韋爾真實PK

俗話說得好&#xff0c;貓咪一年到頭都在掉毛&#xff0c;仿佛它們是四季常在的"蒲公英"&#xff0c;隨時隨地都在播撒毛發。貓毛不僅遍布它們自己的身體&#xff0c;還可能飄到你的床鋪、沙發、衣物上……面對這樣的狀況&#xff0c;既要應對無處不在的貓毛&#xf…

基于卷積神經網絡(CNN)的垃圾分類模型研究

摘要&#xff1a; 隨著城市化進程的加快&#xff0c;垃圾問題日益嚴重。傳統的垃圾分類方法存在效率低下、準確率不高等問題。本文提出了一種基于卷積神經網絡&#xff08;CNN&#xff09;的垃圾分類模型&#xff0c;該模型能夠自動識別并分類不同類型的垃圾。實驗表明&#xf…

Kruskal算法求最小生成樹

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h> #define MAX 100 #define NO INT_MAX//NO表示沒有邊&#xff0c;相當于INFtypedef struct Graph {int arcnum;int vexnum;char vextex[MAX][20];int martrix[MAX][MA…

什么無線領夾麥克風音質最好?領夾麥克風品牌排行榜前十名推薦

?在當今的數字化浪潮中&#xff0c;個人聲音的傳播和記錄變得尤為重要。無論是會議中心、教室講臺還是戶外探險&#xff0c;無線領夾麥克風以其卓越的便攜性和連接穩定性&#xff0c;成為了人們溝通和表達的首選工具。面對市場上琳瑯滿目的無線麥克風選擇&#xff0c;為了幫助…