簡述 Vue父子組件和非父子組件的通信

Vue組件之間的通信可以分為父子組件通信和非父子組件通信兩大類。下面將分別進行詳細的解釋:

父子組件通信

1. 父傳子

  • 方式:通過props屬性進行傳遞。
  • 步驟
    1. 在父組件中定義要傳遞的數據。
    2. 在父組件的模板中,使用子組件標簽并動態綁定父組件的數據到子組件的props上。
    3. 在子組件中,通過props選項聲明要接收的數據,并在模板中使用這些數據。

示例代碼

父組件:

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

子組件:

<template><div>{{ message }}</div>
</template><script>
export default {props: ['message']
}
</script>

2. 子傳父

  • 方式:通過自定義事件進行傳遞。
  • 步驟
    1. 在子組件中,當需要向父組件傳遞數據時,使用this.$emit('eventName', payload)觸發一個自定義事件。
    2. 在父組件中,使用@eventNamev-on:eventName監聽子組件的自定義事件,并在事件處理函數中接收數據。

示例代碼

子組件:

<template><button @click="notifyParent">Notify Parent</button>
</template><script>
export default {methods: {notifyParent() {this.$emit('childEvent', 'Hello from Child');}}
}
</script>

父組件:

<template><child-component @childEvent="handleChildEvent"></child-component>
</template><script>
import ChildComponent from './ChildComponent.vue'export default {methods: {handleChildEvent(message) {console.log(message); // 輸出:'Hello from Child'}},components: {ChildComponent}
}
</script>

非父子組件通信

1. 事件總線(Event Bus)

  • 方式:創建一個新的Vue實例作為事件中心,用于在任意組件之間傳遞事件和消息。
  • 步驟
    1. 創建一個新的Vue實例作為事件總線。
    2. 在需要發送消息的組件中,使用EventBus.$emit('eventName', payload)發送消息。
    3. 在需要接收消息的組件中,使用EventBus.$on('eventName', callback)監聽消息。

2. Vuex

  • 方式:Vuex是Vue.js的狀態管理模式和庫,用于集中存儲和管理組件的狀態。
  • 步驟
    1. 安裝和配置Vuex。
    2. 在Vuex的store中定義state、mutations、actions等。
    3. 在組件中,通過this.$store.state訪問狀態,通過this.$store.commit提交mutation,或者通過this.$store.dispatch分發action。

3. provide/inject

  • 方式:允許祖先組件向其所有子孫后代注入一個依賴,不論組件層次有多深,該依賴都可以作為屬性供后代組件使用。
  • 步驟
    1. 在祖先組件中,使用provide選項提供數據或方法。
    2. 在后代組件中,使用inject選項來接收這些數據或方法。

以上方式可以根據具體項目需求和場景來選擇使用。在大型項目中,Vuex通常是一個很好的選擇,因為它提供了清晰的狀態管理和數據流。而在小型項目中,父子組件通信和事件總線可能更加輕量級和易于實現。

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

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

相關文章

ABeam 德碩 Team Building | SDC Green Day——環保公益行動

山野好拾光 春日公益行 繼上年度大連辦公室Green Day活動的順利舉辦&#xff0c;環保的理念更加深入到ABeam每一位員工的心中。春日天氣晴好&#xff0c;西安辦公室的小伙伴們也迫不及待來上一場說走就走的Green Day Outing活動。 本次環保公益行動主題為「夏日Go Green暢享山…

千億級開源大模型Qwen110B部署實測

近日&#xff0c;通義千問團隊震撼開源 Qwen1.5 系列首個千億參數模型 Qwen1.5-110B-Chat。 千億級大模型普通顯卡是跑不了推理的&#xff0c;普通人一般也沒辦法本地運行千億級大模型。 為了探索千億級大模型到底需要計算資源&#xff0c;我用云計算資源部署了Qwen1.5-110B-…

谷歌AI搜索功能“翻車”,用戶體驗引擔憂

近期&#xff0c;谷歌對其搜索引擎進行重大更新&#xff0c;推出了全新AI搜索功能“AI Overview”&#xff0c;試圖通過人工智能技術提供更智能便捷的搜索體驗&#xff0c;并追趕微軟和OpenAI等競爭對手。然而事與愿違&#xff0c;這項備受期待的功能上線后卻頻頻出錯&#xff…

測試基礎06:軟件產品的運行環境dev、sit、test、fat、uat、pre、pro

???????課程大綱 1、Dev開發環境 &#xff08;Development environment&#xff09; 使用者 開發人員使用。 用途 用于編程&#xff0c;版本變動很大。 外部能否訪問 外部用戶無法訪問。 2、sit/ITE系統集成測試環境 &#xff08;System Integration Testing en…

WIFI——ESP8266的一些知識

ESP8266的三種無線通訊模式&#xff1a; AP模式&#xff1a;ESP8266產生WIFI&#xff0c;其他設備加入該wifi 無線終端模式&#xff1a;別人創建wifi&#xff0c;ESP8266加入該wifi 混合模式&#xff1a;雖然是以上兩種都能用&#xff0c;但同一時間只能用其中一個 設置AP模…

大數據的存儲和處理面臨哪些挑戰,如何應對?

大數據的存儲和處理面臨以下挑戰&#xff1a; 數據量巨大&#xff1a;大數據的特點之一是數據量非常龐大&#xff0c;存儲和處理這么大規模的數據是一個挑戰。傳統的數據庫系統可能無法滿足大數據需求&#xff0c;需要尋找適合大規模數據處理的解決方案。 數據異構性&#xff…

30多萬漢字詞語押韻查詢ACCESS\EXCEL數據庫

押韻&#xff0c;也作“壓韻”。作詩詞曲賦等韻文時在句末或聯末用同韻的字相押&#xff0c;稱為押韻。詩歌押韻&#xff0c;使作品聲韻和諧&#xff0c;便于吟誦和記憶&#xff0c;具有節奏和聲調美。舊時押韻&#xff0c;要求韻部相同或相通&#xff0c;也有少數變格。現代新…

《開發問題解決》Window下7z解壓:cannot create symbolic link : 客戶端沒有所需的特權

問題描述&#xff1a; 今天使用7z來解壓東西的是突然出現這個問題。 問題解決&#xff1a; download直接下載到c盤中&#xff0c;由于所在文件夾有權限限制。無法進行正常解壓。 7.zip解壓時使用管理員權限進行解壓&#xff0c;解壓時使用管理員權限。即如圖 使用管理員權限重…

【面試干貨】找出一個偶數能夠表示為兩個素數之和的所有可能情況

【面試干貨】找出一個偶數能夠表示為兩個素數之和的所有可能情況 1、實現思想2、代碼實現 &#x1f496;The Begin&#x1f496;點點關注&#xff0c;收藏不迷路&#x1f496; 1、實現思想 功能&#xff1a;通過循環遍歷奇數&#xff0c;找出一個大于等于 6 的偶數能夠表示為兩…

【C++初階】auto關鍵字

目錄 1.auto簡介 2.auto的使用 1.auto簡介 在早期C/C中auto的含義是&#xff1a;使用auto修飾的變量&#xff0c;是具有自動存儲器的局部變量&#xff0c;但遺憾的 是一直沒有人去使用它&#xff0c;大家可思考下為什么&#xff1f; C11中&#xff0c;標準委員會賦予了auto全…

紅隊項目PinkysPalace格式字符串緩沖區溢出詳解

簡介 滲透測試-地基篇 該篇章目的是重新牢固地基&#xff0c;加強每日訓練操作的筆記&#xff0c;在記錄地基筆記中會有很多跳躍性思維的操作和方式方法&#xff0c;望大家能共同加油學到東西。 請注意&#xff1a; 本文僅用于技術討論與研究&#xff0c;對于所有筆記中復現的…

視頻白平衡沒調好怎么補救 視頻白平衡調整用哪些參數 會聲會影視頻制作教程

沒有調不好的白平衡&#xff01;如果有&#xff0c;那就是你的方法沒用對。無論你的視頻發黃還是發藍&#xff0c;只要掌握本文提供的方法&#xff0c;簡單幾步就能糾正色偏、校準白平衡。操作很簡單&#xff0c;幾乎所有人都能夠輕松掌握。有關視頻白平衡沒調好怎么補救&#…

Android 布局中@NULL的使用和代碼實現方式詳解

文章目錄 1、使用場景2、示例代碼實現2.1、移除背景2.2 、移除文本2.3、移除布局寬度或高度2.4、移除提示文本2.5、移除圖像資源 3、綜合示例3.1、布局文件 activity_main.xml3.2、主活動文件 MainActivity.java3.4、資源文件3.5、運行結果 4、優點5、缺點6、綜合分析6.1、適用…

.net core web項目部署IIS報錯:HTTP 錯誤 413.1 - Request Entity Too Large

HTTP 錯誤 413.1 - Request Entity Too Large 解決辦法 這個報錯的原因是因為IIS配置問題&#xff0c;IIS最大默認配置只有30M&#xff0c;超過30M就會報錯 解決辦法 在程序中配置能接收最大字節大小 //配置請求頭中能最大接收多少數據 //builder.WebHost.UseKestrel(option…

VGG論文解析—Very Deep Convolutional Networks for Large-Scale Image Recognition

VGG論文解析—Very Deep Convolutional Networks for Large-Scale Image Recognition -2015 研究背景 大規模圖像識別的深度卷積神經網絡 VGG&#xff08;牛津大學視覺幾何組&#xff09; 認識數據集&#xff1a;ImageNet的大規模圖像識別挑戰賽 LSVRC-2014&#xff1a;Image…

485通訊的自動流量控制詳細介紹

485通訊的自動流量控制&#xff08;Auto Flow Control&#xff09;是一種簡化流量控制過程的方法&#xff0c;使通信設備能夠自動調整發送速率&#xff0c;以適應接收端的處理能力。它通過內置的算法或硬件特性來實現&#xff0c;不需要額外的硬件控制信號&#xff08;如RTS/CT…

el-table的懶加載樹形結構

el-table樹形模式&#xff0c;懶加載的數據保存在multipleTableRef.value.store.states.lazyTreeNodeMap._rawValue multipleTableRef.value.store.states.lazyTreeNodeMap._rawValue默認值為 {} &#xff0c; 也就是沒有屬性的對象&#xff0c;每展開一個節點&#xff0c;如展…

linux系統——nohup后臺運行程序

nohup可以將正在執行程序以后臺掛起形式執行&#xff0c;也即為執行結果不打印到終端 具體使用可以&#xff0c;nohup待執行的命令&#xff0c;可以將執行命令結果輸出到當前目錄的nohup.out文件內 nohup也有其他用法

Linux-Web服務搭建面試題-2

31. 描述在Linux上設置和維護分布式監控系統&#xff08;如Prometheus和Grafana&#xff09;的過程。 在Linux上設置和維護分布式監控系統&#xff08;如Prometheus和Grafana&#xff09;的過程可以分為以下幾個步驟&#xff1a; 安裝和配置Prometheus&#xff1a; 下載并安裝…

MyCat2之分庫分表

原理 一個數據庫由很多表的構成&#xff0c;每個表對應的不同的業務&#xff0c;垂直切分是指按照業務將表進行分類&#xff0c;分不到不同的數據庫上&#xff0c;這樣壓力就分擔到了不同的庫上面。 數據分片 數據分片包括里&#xff1a;垂直分片和水平分片&#xff0c;垂直分…