搜尋
首頁web前端js教程如何實作Vue父子元件資料傳遞

這次帶給大家如何實現Vue父子元件資料傳遞,實作Vue父子元件資料傳遞的注意事項有哪些,以下就是實戰案例,一起來看一下。

當我們在書寫vue 元件的時候,也許可能會用到資料傳遞;將父元件的資料傳遞給子元件,有時也需要透過子元件去事件去觸發父元件的事件;

每當我們遇到這樣的需求的時候,我們總是會想到有三種解決方法:

透過props 的方式傳遞給子元件(父子元件)

vuex 進行狀態管理(父子元件與非父子元件) vuex

非父子元件的通訊傳遞Vue Event Bus ,使用Vue的實例,實現事件的監聽和發布,實現元件之間的傳遞。

後來再逛社群的時候我又發現了還有第四種傳遞方式, inheritAttrs $attrs $listeners

#附上原文連結Vue2.4版本中新加入的attrs 以及listeners 屬性使用和Vue.js最佳實踐(五招讓你成為Vue.js大師)

基本上是大部分的公司或專案都是用前面兩種,我司也不例外;好像曾經在官方文件看到過, vuex 適合用在大型的專案中。第三種方式我曾在我的畢設中用過,其他地方我好像目前是沒有看到,當時只有一個功能需要在兄弟組件之間傳遞數據,用vuex 的話,大材小用,另外還需要時間成本。所以我選擇了 Vue Event Bus ;最後一種方式的話,我目前還沒有看到在專案的應用。但我個人覺得既然有這個 api 那肯定是有他存在的道理。不然它存在還有何意義的? ?如果有需求我個人覺得可以嘗試用一用;擁抱變化,擁抱機會

工作之後發現,碰到 bug 有時候常規的方式,並不一定是最好的。跳脫常規思維,跳脫常規方式解決問題,可能會更好。常規方法能夠解決問題但是未免有些臃腫。在實踐的採坑中體會更有意思

inheritAttrs $attrs $listeners

inheritAttrs :預設是true

我的解釋是:沒有被子元件繼承的父元件屬性,不會當做特性展示在子元件根元素上面。說起來,聽起來好像有些拗口,看截圖看程式碼你就明白了

inheritAttrs :false

inheritAttrs :false

#######c='ture1.png'>######官方解釋:預設情況下父作用域的不被認定###props### 的特性綁定( ###attribute bindings### ) 將會「回退」且作為普通的###HTML### 特性應用在子元件的根元素上。當撰寫包裹一個目標元素或另一個元件的元件時,這可能不會總是符合預期###行為###。透過設定 ###inheritAttrs### 到 ###false### ,這些預設行為將會被去掉。而透過 (同樣是 2.4 新增的) 實例屬性 ###$attrs### 可以讓這些特性生效,並且可以透過 ###v-bind### 顯性的綁定到非根元素上。 #########$attrs#########我的解釋是:存放沒有被子元件繼承的的資料###物件###;看看圖####### ######

官方文件解釋:包含了父作用域中不作為 prop 被識別 (且獲取) 的特性綁定 (class 和 style 除外)。當一個元件沒有宣告任何prop 時,這裡會包含所有父作用域的綁定(class 和style 除外),並且可以透過v-bind="$attrs" 傳入內部元件-在建立高等級的元件時非常有用。

$listeners

我的理解就是:子元件可以觸發父元件的事件(不需要用什麼那些麻煩的vuex或一個空的Vue 實例作為事件總線,或者又是什麼vm.$on )

#官方文件解釋:包含了父作用域中的(不含.native 修飾器的) v-on 事件監聽器。它可以透過 v-on="$listeners" 傳入內部元件——在創建更高層次的元件時非常有用。

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

怎麼使用JS實作百度搜尋框

讓自己的js程式碼國際化

以上是如何實作Vue父子元件資料傳遞的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
node.js流帶打字稿node.js流帶打字稿Apr 30, 2025 am 08:22 AM

Node.js擅長於高效I/O,這在很大程度上要歸功於流。 流媒體匯總處理數據,避免內存過載 - 大型文件,網絡任務和實時應用程序的理想。將流與打字稿的類型安全結合起來創建POWE

Python vs. JavaScript:性能和效率注意事項Python vs. JavaScript:性能和效率注意事項Apr 30, 2025 am 12:08 AM

Python和JavaScript在性能和效率方面的差異主要體現在:1)Python作為解釋型語言,運行速度較慢,但開發效率高,適合快速原型開發;2)JavaScript在瀏覽器中受限於單線程,但在Node.js中可利用多線程和異步I/O提升性能,兩者在實際項目中各有優勢。

JavaScript的起源:探索其實施語言JavaScript的起源:探索其實施語言Apr 29, 2025 am 12:51 AM

JavaScript起源於1995年,由布蘭登·艾克創造,實現語言為C語言。 1.C語言為JavaScript提供了高性能和系統級編程能力。 2.JavaScript的內存管理和性能優化依賴於C語言。 3.C語言的跨平台特性幫助JavaScript在不同操作系統上高效運行。

幕後:什麼語言能力JavaScript?幕後:什麼語言能力JavaScript?Apr 28, 2025 am 12:01 AM

JavaScript在瀏覽器和Node.js環境中運行,依賴JavaScript引擎解析和執行代碼。 1)解析階段生成抽象語法樹(AST);2)編譯階段將AST轉換為字節碼或機器碼;3)執行階段執行編譯後的代碼。

Python和JavaScript的未來:趨勢和預測Python和JavaScript的未來:趨勢和預測Apr 27, 2025 am 12:21 AM

Python和JavaScript的未來趨勢包括:1.Python將鞏固在科學計算和AI領域的地位,2.JavaScript將推動Web技術發展,3.跨平台開發將成為熱門,4.性能優化將是重點。兩者都將繼續在各自領域擴展應用場景,並在性能上有更多突破。

Python vs. JavaScript:開發環境和工具Python vs. JavaScript:開發環境和工具Apr 26, 2025 am 12:09 AM

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。

JavaScript是用C編寫的嗎?檢查證據JavaScript是用C編寫的嗎?檢查證據Apr 25, 2025 am 12:15 AM

是的,JavaScript的引擎核心是用C語言編寫的。 1)C語言提供了高效性能和底層控制,適合JavaScript引擎的開發。 2)以V8引擎為例,其核心用C 編寫,結合了C的效率和麵向對象特性。 3)JavaScript引擎的工作原理包括解析、編譯和執行,C語言在這些過程中發揮關鍵作用。

JavaScript的角色:使網絡交互和動態JavaScript的角色:使網絡交互和動態Apr 24, 2025 am 12:12 AM

JavaScript是現代網站的核心,因為它增強了網頁的交互性和動態性。 1)它允許在不刷新頁面的情況下改變內容,2)通過DOMAPI操作網頁,3)支持複雜的交互效果如動畫和拖放,4)優化性能和最佳實踐提高用戶體驗。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

DVWA

DVWA

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

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

MantisBT

MantisBT

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

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境