React中的屬性校驗和預設屬性

2021-08-21 03:40:54 字數 1728 閱讀 9670

一,在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中也有計算屬性嗎?至少在官方文件中沒有提出計算屬性這個概念,但是我們想使用這個計算屬性該如何是...