React學習(二)props屬性
阿新 • • 發佈:2019-02-03
一、props屬性知識點
1.每個元件物件都會有props(properties的簡寫)屬性
2.元件標籤的所有屬性都儲存在props中
3.內部讀取某個屬性值: this.props.propertyName
4.作用: 通過標籤屬性從元件外向元件內傳遞資料(只讀)
5.對props中的屬性值進行型別限制和必要性限制
Person.propTypes = {
name: React.PropTypes.string.isRequired,
age: React.PropTypes.number.isRequired}
6.擴充套件屬性: 將物件的所有屬性通過props傳遞
二、元件的組合
1、 元件標籤中包含子元件標籤
2、拆分元件: 拆分介面, 抽取元件
3、通過props傳遞資料
例題2、 如何用元件組合實現以下效果
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>components_composing</title>
</head>
<body>
<div id="example"></div>
<script src="js/react.js" ></script>
<script src="js/react-dom.js"></script>
<script src="js/babel.min.js"></script>
<script type="text/babel">
1. 拆分元件: 拆分介面, 抽取元件
* 單個標題元件: Welcome
* 應用元件: App
2. 分析確定傳遞資料和資料型別
* Welcome: props.name string
* App: props.names array
function Welcome(props) {
return <h2> Welcome {props.name} </h2>;}//直接傳引數
class App extends React.component{
render(){
return(
<div>
{ this.props.names.map(name =>{
return <Welcome name={name}/>
})}
</div>)}}
var names = ["Tom","Jack","rock"];
ReactDOM.render(<App names={names}/>,document.getElementById("example"))
</script>
</body>
</html>
三、詳解例題2React渲染步驟
1.建立APP例項物件
2.呼叫render(),得到虛擬DOM
<div>
<Welcome name="TOM"/>
<Welcome name="Jack"/>
<Welcome name="rock"/>
</div>
3.找出其中的元件標籤<Welcome>,呼叫對應的Welcome函式,得到對應的虛擬DOM,替換<Welcome>
<div>
<h2>Welcome TOM</h2>
<h2>Welcome Jack</h2>
<h2>Welcome rock</h2>
</div>
4.將虛擬DOM轉化成真實DOM,並插入到example對應的div中