1. 程式人生 > >React學習(二)props屬性

React學習(二)props屬性

React

一、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、 如何用元件組合實現以下效果
例題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中