今天拒课,我來說下RN里的Props和State屬性徐勃,以及render()方法。
首先早像,我說下render()方法的作用僻肖,render()的作用是渲染組件。即卢鹦,把文件里寫的組件臀脏、樣式等通過該方法更新到界面上來。
Props,大多數(shù)組件在創(chuàng)建時就可以使用各種參數(shù)來進(jìn)行定制揉稚。用于定制的這些參數(shù)就稱為props(屬性)秒啦。比如Image的source屬性,TextInput的placeholder屬性等等搀玖。
另外余境,自定義的組件也可以使用props。通過在不同的場景使用不同的屬性定制灌诅,可以盡量提高自定義組件的復(fù)用范疇芳来。只需在render函數(shù)中引用this.props。
我們使用兩種數(shù)據(jù)來控制一個組件:props和state延塑。props是在父組件中指定绣张,而且一經(jīng)指定,在被指定的組件的生命周期中則不再改變关带。 對于需要改變的數(shù)據(jù)侥涵,我們需要使用state。
一般來說宋雏,你需要在constructor中初始化state(譯注:這是ES6的寫法芜飘,早期的很多ES5的例子使用的是getInitialState方法來初始化state,這一做法會逐漸被淘汰)磨总,然后在需要修改時調(diào)用setState方法嗦明。上面截圖的例子也是一個定時展示和隱藏文字的例子。
在寫此部分例子的時候蚪燕,還有一點(diǎn)值得注意的地方娶牌,就是此段代碼:state.text.split(' ').map((word)=>word&&'??'),一般在我們的邏輯中“&&”代表邏輯與馆纳,只有當(dāng)前后都為真的情況下诗良,返回真,而這里它是一個執(zhí)行語句鲁驶,先執(zhí)行&&前面的語句鉴裹,如果為真,執(zhí)行&&后面的語句钥弯,返回結(jié)果也是&&后面的執(zhí)行結(jié)果径荔。
Props和State就先說到這,下一篇我來說說Flexbox布局脆霎。