日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

props的理解和使用

發布時間:2023/12/4 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 props的理解和使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

理解:
1.每個組件對象都會有props(properties的簡寫)屬性
2.組件標簽的所有屬性都保存在props中

作用:
1.通過標簽屬性從組件向外組件內傳遞變化的數據
2.注意:組件內部不要修改props數據(props是只讀的)

操作:
1.內部讀取某個屬性值

this.props.name

2.對props中的屬性值進行類型限制必要性限制
使用prop-types庫進行限制(需要引入prop-types庫)

Person.propTypes = {name:PropTypes.string.isRequired, //限制name必傳,且為字符串age:PropTypes.number//限制age為數值
}

3.擴展屬性:將對象的所有屬性通過props傳遞

<div id='test'></div>
<div id='test1'></div>
<script type="text/babel">//1.創建組件class Person extends React.Component{render(){console.log(this)//讀取狀態const {name,age,sex} = this.propsreturn <ul><li>姓名:{name}</li><li>性別:{sex}</li><li>年齡:{age}</li></ul>}}//2.渲染組件到頁面//普通傳值ReactDOM.render(<Person name="掌聲" age="20" sex="男"/>,document.getElementById('test'))//多個參數傳值const p = {name="lisi" age=18 sex="女"}console.log(...p)//報錯,展開運算符不能展開對象ReactDOM.render(<Person {...p}/>,document.getElementById('test1'))//展開運算符展開對象,只適用于標簽屬性的傳遞
</script>

4.默認屬性值

Person.defaultProps = {name:'tom',age:20
}

5.函數式組件使用props(只有props能使用),不需要寫render

<div id='test'></div>
function Person(props){const {name,age,sex} = propsreturn (<ul><li>姓名:{name}</li><li>性別:{sex}</li><li>年齡:{age}</li></ul>)
}
//對標簽屬性進行類型,必要性的限制
Person.propTypes = {name:PropTypes.string.isRequired,//限制name必傳,且為字符串sex:PropTypes.string,//限制sex為字符串age:PropTypes.number//限制age為數值
}
//指定默認標簽屬性值
Person.defaultProps = {name:'tom',age:20
}
//渲染組件到頁面
ReactDOM.render(<Person name="lili"/>,document.getElementById('test'))

props基本使用:

<div id='test'></div>
<script type="text/babel">//1.創建組件class Person extends React.Component{render(){console.log(this)//讀取狀態const {name,age,sex} = this.propsreturn <ul><li>姓名:{name}</li><li>性別:{sex}</li><li>年齡:{age}</li></ul>}}//對標簽屬性進行類型,必要性的限制Person.propTypes = {name:PropTypes.string.isRequired,//限制name必傳,且為字符串sex:PropTypes.string,//限制sex為字符串age:PropTypes.number,//限制age為數值speak:PropTypes.func//限制speak為函數}//指定默認標簽屬性值Person.defaultProps = {name:'tom',age:20}function speak(){console.log("講話了.....")}//2.渲染組件到頁面ReactDOM.render(<Person name="掌聲" speak={speak}/>,document.getElementById('test'))

props簡寫(將限制和默認值移到類中):關鍵字:static

<div id='test'></div>
<script type="text/babel">//1.創建組件class Person extends React.Component{//構造器與props的關系:構造器是否接受 props,是否傳遞給 super//取決于:是否希望在構造函數中通過 this 訪問 propsconstructor(props){//構造器可省略不寫console.log(props)//在React.Component子類實現構造函數時,在其他語句之前調用,否則this.props在構造函數中可能會出現未定義的bugsuper(props)//只要有構造器,必寫super	console.log('constructor',this.props)//this.props為undefined}//對標簽屬性進行類型,必要性的限制static propTypes = {name:PropTypes.string.isRequired,//限制name必傳,且為字符串sex:PropTypes.string,//限制sex為字符串age:PropTypes.number,//限制age為數值}//指定默認標簽屬性值static defaultProps = {name:'tom',age:20}render(){console.log(this)//讀取狀態const {name,age,sex} = this.propsreturn <ul><li>姓名:{name}</li><li>性別:{sex}</li><li>年齡:{age}</li></ul>}}//2.渲染組件到頁面ReactDOM.render(<Person name="掌聲"/>,document.getElementById('test'))

總結

以上是生活随笔為你收集整理的props的理解和使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。