一,在react中props是元件對外暴露的介面,但通常元件並不會明顯的申明他會暴露那些介面及型別,這不太利於元件的復用,但比較好的是react提供了proptypes這個物件用於校驗屬性的型別,proptypes包含元件屬性的所有可能型別,以下我們通過乙個示列來說明(物件的key是元件的屬性名,value是對應屬性型別)元件屬性的校驗.
class postitem extends react.component
postitem.propstypes=;
二,proptypes可以校驗的元件型別的屬性型別表
元件屬性型別和proptypes屬性的對應關係
型別proptypes對應的屬性
string
proptypes.string
number
proptypes.number
boolean
proptypes.bool
function
proptypes.func
object
proptypes.object
array
proptypes.array
symbol
proptypes.symbol
element(react元素)
proptypes.element
node(可被渲染的節點,數字,字串,react元素或者由這些型別的資料組成的陣列)
proptypes.node
三,當我們使用proptypes.object或proptypes.array校驗屬性型別時,我們只知道屬性型別時乙個陣列或物件,而無從得知物件的具體結構和陣列元素的型別是什麼樣
子,這時候我們更好的做法是用proptypes.shape和proptypes.arrayof.
示列:style:proptypes.shape(),
sequence:proptypes.arrayof(proptypes.number);
說明:
表示style屬性是乙個物件,物件有兩個屬性,乙個是string型別color,另外乙個是數字型別的number,sequence表示屬性為乙個陣列並且每乙個陣列元素都是數字型別
四:必須屬性和非必須屬性
如果傳入元件的某乙個屬性是比需屬性則可以在屬性驗證後面加上isrequired。
示列:
postitem.proptypes=).isrequired,
onvote:proptypes.func.isrequired
}
五:react還為元件指定預設屬性(defaultprops),當元件未被賦值時,元件會使用defaultprops定義的屬性
示列:
function welcome(props)
welcome.defaultprops=
以上為react屬性驗證小知識點,如有不當之處,希望被拍正
React學習手記2 屬性校驗和預設屬性
屬性校驗 props是元件對外暴露的介面,所以介面型別很重要,否則不利於組建的復用。react提供了校驗的方法。import proptypes form prop types class index extends react.component index.proptypes 複製 propty...
關於android 控制項的預設屬性問題
每個控制項都有很多屬性 而對於一些屬性會有其預設值 而這些預設值是 來的?我們會想到style或者theme 可往往我們使用textview或者一些常用的控制項的時候並沒有宣告 style屬性 或者theme屬性啊 下面以最常用的textview來進行分析 我們知道 開發中縮寫的xml 布局檔案 最...
React中的「計算屬性」
相信許多學習過vue的小夥伴對計算屬性都不陌生吧。計算屬效能幫我們資料進行一些計算操作,計算屬性是依賴於data裡面的資料的,在vue中只要計算屬性依賴的data值發生改變,則計算屬性就會呼叫。那react中也有計算屬性嗎?至少在官方文件中沒有提出計算屬性這個概念,但是我們想使用這個計算屬性該如何是...