React-Native中props具體使用詳解
props就是屬性,是為了描述一個(gè)組件的特征而存在的。它是父組件傳遞給子組件的。
使用props
通過上一個(gè)頁面?zhèn)鬟f
新建一個(gè) PropsTest.js 文件
exprot default class PropsTestextendesComponent{
render(){
return <Text>{this.props.name}</Text>
}
}
在上一個(gè)頁面中使用PropsTest組件
import PropsTest from './PropsTest' <PropsTest name = 'XiaoMing' />
注意: 上方代碼,均為代碼片段。
默認(rèn)屬性,以及它的作用
由于props的屬性都是上個(gè)頁面?zhèn)鬟f的,所以無法修改它。但是我們可以在PropsTest文件中,給props定義一些默認(rèn)的值。
exprot default class PropsTestextends Component{
static defaultProps={
name: 'XiaoHong'
}
render(){
return <Text>{this.props.name}</Text>
}
}
注意,defaultProps 需要使用static關(guān)鍵字來做靜態(tài)修飾。這樣,如果上個(gè)頁面沒有傳值,則顯示的是這個(gè)默認(rèn)的屬性。
對(duì)props進(jìn)行約束和檢查
exprot default class PropsTestextends Component{
static defaultProps={
name: 'XiaoHong'
}
static propTypes={
name: PropTypes.string,
age: PropTypes.number,
sex: PropTypes.string.isRequired
}
render(){
return <Text>{this.props.name}</Text>
}
}
對(duì)props里面的屬性進(jìn)行類型判斷,可以使用propTypes來做到,同樣需要使用static關(guān)鍵字來修飾。
isRequired 可以指定必填項(xiàng)
注意:
propTypes屬性 在 react 包中,需要先導(dǎo)入才能使用。
props延伸操作符
ES6的最新語法
假如我們的組件需要好多屬性,如下:
params = {name: 'XiaoZhang', age: 18, sex: '男'}
// 如果需要傳遞給下一個(gè)頁面需要:
<PropsTest
name = {params.name}
sex = {params.sex}
age = {params.age}
/>
// 等等,這樣如果屬性特別多,代碼將會(huì)變得難以維護(hù)。
在ES6中可以使用最新的延伸操作符特性
<PropsTest
{...params}
/>
非常的簡潔
props解構(gòu)賦值
ES6的最新語法
通過延伸操作符傳遞的對(duì)象,在另一個(gè)組件中想要從中獲取某幾個(gè)來使用,可以用解構(gòu)賦值的方式
var {name, age} = params;
// 其他地方就可以直接引用name和age了
{name}或{age}
// 這么做的好處,同樣是不需要使用如下的傳統(tǒng)方式
{params.name}或{params.age}
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
react 通過后端接口實(shí)現(xiàn)路由授權(quán)的示例代碼
本文主要介紹了React應(yīng)用中通過后端接口獲取路由授權(quán),實(shí)現(xiàn)動(dòng)態(tài)和靈活的權(quán)限管理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11
React在組件中如何監(jiān)聽redux中state狀態(tài)的改變
這篇文章主要介紹了React在組件中如何監(jiān)聽redux中state狀態(tài)的改變,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
react項(xiàng)目自行配置熱更新的實(shí)現(xiàn)
本文主要介紹了react項(xiàng)目自行配置熱更新的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11
聊聊jenkins部署vue/react項(xiàng)目的問題
本文給大家介紹了jenkins部署vue/react項(xiàng)目的問題,文末給大家提到了centOS安裝jenkins的腳本,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2022-02-02
React服務(wù)端渲染和同構(gòu)的實(shí)現(xiàn)
本文主要介紹了React服務(wù)端渲染和同構(gòu)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
React-Router如何進(jìn)行頁面權(quán)限管理的方法
本篇文章主要介紹了React-Router如何進(jìn)行頁面權(quán)限管理的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12
React中useCallback useMemo到底該怎么用
在React函數(shù)組件中,當(dāng)組件中的props發(fā)生變化時(shí),默認(rèn)情況下整個(gè)組件都會(huì)重新渲染。換句話說,如果組件中的任何值更新,整個(gè)組件將重新渲染,包括沒有更改values/props的函數(shù)/組件。在react中,我們可以通過memo,useMemo以及useCallback來防止子組件的rerender2023-02-02

