Vue組件通信 - 組件傳值 / 什么是組件

1.什么是組件通信:

組件(.vue)通過某種方式來傳遞信息以達到某個目的

2.組件通信可以解決什么問題:

每個組件之間都有獨立的作用域,組件間的數據是無法共享的,但在實際開發中我們常常需要讓組件之間共享數據,組件通訊可以讓它們之間能進行通訊,這樣才能構成完整的系統。

3.父子組件通信

3.1 方法一:props / $emit

父組件A通過props的方式向子組件B傳遞,B傳A通過在B組件中$emit,A組件中v-on的方式實現。

3.2 方法二:$children / $parent

$children:獲取到一個包含所有子組件(不包含孫組件)的VueComponent對象數組,可以直接拿到子組件中所有的數據和方法等

$parent: 獲取到一個父節點的VueComponent 對象,同樣包含父節點中所有數據和方法等

3.3 方法三 :$attrs / $listeners

$attrs:包含父作用域里除class 和 style 外的非props屬性集合。通過 this.$attrs 獲取父作用域中所有符合條件的屬性集合,然后還要繼續傳給子組件內部的的其他組件,通過 v-bind = ' $attrs??'來實現

$listeners :包含父作用域里 .native 除外的監聽事件集合。如果還要繼續傳給子組件內部的其他組件,就可以通過 v-on = ' $linteners'

4.同級組件通信

數據提升:A修改B,把B中的數據提升到公共的父組件里面,A通過子傳父修改父親的數據,父親通過父傳子傳遞把數據傳遞到B

5.跨層級組件通信

vuex全局狀態共享

EventBus中央事件總線

不管是父子組件,兄弟組件,跨層級組件等都可以使用它完成通信操作

定義方法:

1.抽離成一個單獨的js文件 Bus.js ,然后再需要的地方引入

1.1 A / B => import Bus from ' ./Bus.js '

1.2.A=> Bus.$emit(' 自定義事件名',' 傳輸的數據 ')

1.3.B =>Bus . $on (' 自定義事件名' ,function(接收的數據) {})

2.直接掛載到全局 Vue.prototype.$bus = new Vue()使用的時候$bus.

2.1 A=>this.$bus.$emit(' 自定義事件名',' 傳輸的數據 ')

2.2 B=> this.$bus.$on? (' 自定義事件名' ,function(接收的數據) {})

3.注入到Vue根對象上面 new Vue ({data: {Bus:new Vue()})

什么是組件:

組件就是把圖形、非圖形的各種邏輯均抽象為一個'統一的概念(組件)來實現開發的模式,在vue中每一個.vue文件都可以視為一個組件

組件的優勢:

1.降低整個系統的耦合度,在保持接口不變的情況下,我們可以替換不同的組件快速完成需求

2.調試方便,由于整個系統是通過組件組合起來的,在出現問題的時候,可以用排除法直接移除組件,或者根據報錯的組件快速定位問題,之所以能夠快速定位,是因為每個組件之間的低耦合,職責單一,所以邏輯會比分析整個系統要簡單

3.提高可維護性,由于每個組件的職責單一,并且組件在系統中是被復用的,所以對代碼進行優化可以獲得系統的整體升級

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

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

相關文章

【計算機網絡原理】對傳輸層TCP協議的重點知識的總結

?????? write in front ??????? ?????????大家好,我是xiaoxie.希望你看完之后,有不足之處請多多諒解,讓我們一起共同進步????? . ?? ?xiaoxie?????????—CSDN博客 本文由xiaoxie????????? 原創 CSDN 如…

Spring Bean Map漫游:遍歷背后的生命周期奧秘

1. 引言 在Spring框架中,Bean的生命周期是一個復雜而精妙的過程。其中,遍歷存儲Bean實例的Map(通常是DefaultSingletonBeanRegistry中的singletonObjects)是這一過程中的重要環節。理解這個遍歷過程以及它在Bean生命周期中的作用…

桌面文件不見了怎么恢復?五種方法解決文件恢復難題,建議收藏

不小心誤刪除了桌面文件,導致文件丟失。事實上誤刪的文件并沒有被永久刪除,而是被移動到了回收站中,可以恢復這些文件。本文將分享多種方法,具體步驟如下。 方法一:從回收站中恢復 大多數操作系統都有回收站或垃圾桶的…

【C語言】結構體內存對齊:熱門面試話題

🔥引言 書接上文,我們了解關于結構體的基本知識,這篇將深入剖析結構體中一個重要的知識點:內存對齊 關于內存對齊是屬于熱門面試話題,對此單獨放在一篇來分享 🌈個人主頁:是店小二呀 🌈C語言筆記…

3D工業視覺

前言 本文主要介紹3D視覺技術、工業領域的應用、市場格局等,主要技術包括激光三角測量、結構光、ToF、立體視覺。 一、核心內容 3D視覺技術滿足工業領域更高精度、更高速度、更柔性化的需求,擴大工業自動化的場景。 2D視覺技術基于物體平面輪廓&#…

軟件無線電學習-第二代移動通信系統過程理解

本文知識內容摘自《軟件無線電原理和應用》 無線通信領域讓大家感受最深的是民用移動通信的快速發展。民用移動通信在短短的二十年時間里已發展了三代:20世紀80年代的模擬體制(TACS/AMPS)為第一代移動通信(簡稱1G);20世紀90年代的數字體制(GSMCDMATDMA)…

Git提交和配置命令

一、提交代碼到倉庫 在軟件開發中,版本控制是一個至關重要的環節。而Git作為目前最流行的版本控制系統之一,為我們提供了便捷高效的代碼管理和協作工具。在日常開發中,我們經常需要將本地代碼提交到遠程倉庫,以便于團隊協作和版本…

2024電工杯數學建模B題思路模型代碼

完整內容更新見文末名片 B 題:大學生平衡膳食食譜的優化設計及評價 大學時代是學知識長身體的重要階段,同時也是良好飲食習慣形成的重要時期。這一特 定年齡段的年輕人,不僅身體發育需要有充足的能量和各種營養素,而且繁重的腦…

Java基礎教程 - 9 集合

更好的閱讀體驗:點這里 ( www.doubibiji.com ) 更好的閱讀體驗:點這里 ( www.doubibiji.com ) 更好的閱讀體驗:點這里 ( www.doubibiji.com ) 9 集合 什么是集合&…

【stm32/CubeMX、HAL庫】嵌入式實驗六:定時器(2)|PWM輸出

參考: 【【正點原子】手把手教你學STM32CubeIDE開發】 https://www.bilibili.com/video/BV1Wp42127Cx/?p13&share_sourcecopy_web&vd_source9332b8fc5ea8d349a54c3989f6189fd3 《嵌入式系統基礎與實踐》劉黎明等編著,第九章定時器&#xff0c…

愛普生TG5032SFN溫補晶振在機器人控制中的應用

機器人控制是機器人技術的核心組成部分,它涉及通過傳感器采集外部環境信息,然后經過信號處理、運動規劃和執行控制等步驟,最終實現機器人的運動控制和任務執行。在技術的不斷更選,機器人控制也在不斷進步和演變。智能化機器人具備…

cannot compute sizeof(off_t) when compile netcdf-fortran

export LD_LIBRARY_PATH/netcdf-c/lib:$LD_LIBRARY_PATH

Z緩沖技術在AI去衣中的關鍵角色

引言: 人工智能(AI)技術的飛速發展,為圖像處理領域帶來了革命性的變化。其中,AI去衣技術作為一種新興的應用,引起了廣泛關注。它不僅在多媒體內容的編輯、虛擬現實和增強現實等領域具有重要的應用價值&…

Jenkins 構建 Maven 項目:項目和服務器在一起的情況

bash.sh內容 #!/bin/bash#刪除歷史數據 rm -rf ruoyi-admin.jar# appname$1 appnamevideo.xxxxx.com #獲取傳入的參數 echo "arg:$appname"#獲取正在運行的jar包pid # pidps -ef | grep $1 | grep java -jar | awk {printf $2} pidps -ef | grep $appname | grep ja…

1673. 找出最具競爭力的子序列

題目 給定一個整數數組 nums 和一個正整數 k,返回長度為 k 且最具競爭力的 nums 子序列。 數組的子序列是從數組中刪除一些元素(可能不刪除元素)得到的序列。 在子序列 a 和子序列 b 第一個不相同的位置上,如果 a 中的數字小于…

mysql 刪除特殊字符 表中存了特殊字符 換行符 回車符 word字符 查詢不到

省流: UPDATE t1 SET f1 REPLACE(REPLACE( f1 , CHAR(10), ), CHAR(13), ); 用 replace() 函數將 換行符char(10) 和 回車符char(13) 替換為空字符串。 char(10):換行 char(13):回車 發現表里存進很多換行符,如下圖&#xff1a…

深入研究Qt Meta - Object System

目錄 先說RTTI 再說QMeta Object System 關于Q_OBJECT 這篇文章我打算研究一下QMetaObject System,也就是Qt自己構建起來的元對象系統。 先說RTTI 啥是RTTI?這是C編程里的一個常見術語,全稱是:運行階段類型識別(Ru…

Chrome DevTools攻略

Chrome DevTools,也稱為Chrome開發者工具,是一套直接內置于Google Chrome瀏覽器的Web開發者工具。以下是一些使用Chrome DevTools的攻略和技巧: 打開DevTools: 右鍵點擊頁面上的任何元素,選擇“檢查”或“審查元素”。…

2024年華為OD機試真題-機場航班調度程序-C++-OD統一考試(C卷D卷)

題目描述: XX市機場停放了多架飛機,每架飛機都有自己的航班號CA3385,CZ6678,SC6508等,航班號的前2個大寫字母(或數字)代表航空公司的縮寫,后面4個數字代表航班信息。但是XX市機場只有一條起飛用跑道,調度人員需要安排目前停留在機場的航班有序起飛。為保障航班的有序起…

【webrtc】MediaEngine的實現CompositeMediaEngine創建VOE

m98音視頻的引擎是管理channel的看起來是外部強加給CompositeMediaEngine 管理的。CompositeMediaEngine :合成媒體引擎 G:\CDN\rtcCli\m98\src\media\base\media_engine.h// CompositeMediaEngine constructs a MediaEngine from separate // voice and video engine classes…