vue函數(shù)式組件是一個不包含狀態(tài)和實例的組件;該組件不支持響應式,并且不能通過this關鍵字引用,用于定義沒有響應數(shù)據(jù),也不需要有任何生命周期的場景,只接受一些props來顯示組件。
本文操作環(huán)境:windows10系統(tǒng)、Vue2.9.6版,DELL G3電腦。
vue函數(shù)式組件是什么
Vue 提供了一種稱為函數(shù)式組件的組件類型,用來定義那些沒有響應數(shù)據(jù),也不需要有任何生命周期的場景,它只接受一些props 來顯示組件。
函數(shù)組件(不要與 Vue 的 render 函數(shù)混淆)是一個不包含狀態(tài)和實例的組件。
簡單的說,就是組件不支持響應式,并且不能通過 this 關鍵字引用自己。
訪問組件屬性
slots: 一個返回 slots 對象的函數(shù)
沒有狀態(tài)或實例,你可能會好奇如何引用數(shù)據(jù)或方法,Vue為底層的 render 函數(shù)提供一個 context 參數(shù)對象。
這個 context 參數(shù)對象具有下列屬性:
-
props: 所有的 props 對象
-
children: VNode 子節(jié)點數(shù)組
-
scopedSlots: (vue2.6.0+) 暴露傳入作用域插槽的對象。將普通插槽作為函數(shù)暴露出去
-
data: 全部的數(shù)據(jù)對象,作為 createElement 函數(shù)的第二個參數(shù)傳遞給組件
-
parent: 對父組件的引用
-
listeners: (vue2.3.0+) 包含父級注冊的事件偵聽器的對象。也是 data.on 的別名
-
injections: (v2.3.0+) 如果使用了 inject 選項,則該對象包含了應當被注入的屬性
訪問這個 context 參數(shù)非常簡單,例如,我們想使用 props,可以這樣做:
在 Template 中訪問組件的 context
在 render 函數(shù)中訪問組件的 context
【