3、React運行階段函數(shù)使用

componentWillReceiveProps: 父組件修改屬性觸發(fā),可以修改新屬性、修改狀態(tài),組件發(fā)生之前觸發(fā),在這個函數(shù)可以使用舊屬性和新屬性 做比較,傳送到組件之前做相應的處理

shouldComponentUpdate: 返回false會阻止render調用,這個方法就是react詢問開發(fā)者 組件是否需要更新,這個函數(shù)可以用來優(yōu)化性能

componentWillUpdate: 這個方法不能修改屬性和狀態(tài)
render:只能訪問this.props 和 this.state ,只有一個頂層組件,不允許修改狀態(tài)和DOM輸出

componentDidUpdate: 可以修改DOM

/* *  第一次加載頁面后,看到只有調用render *  輸入內容,就會看到其它函數(shù)都會按照順序觸發(fā),原因就是父組件改變了子組件的屬性,所以組件觸發(fā)了5個運行中的函數(shù) */
var count = 0var Hello = React.createClass({  
componentWillReceiveProps(){    
console.log('componentWillReceiveProps 1'); 
 },  
shouldComponentUpdate(){   
 console.log('shouldComponentUpdate 2');   
 return true  
}, 
 //這個函數(shù)一般用的不多,用一些日志打印,數(shù)據(jù)打印調試等  componentWillUpdate(){    
console.log('componentWillUpdate 3');  
},  
render(){    
console.log('render 4');    
return(      
<p>hello {this.props.name}</p>    
)  },  
componentDidUpdate(){    
console.log('componentDidUpdate 5');  
}
});

var Test = React.createClass({  
getInitialState(){    
return {      name: ''    }  
},  
handleChange(event){    
this.setState({      name: event.target.value    }) 
 }, 
 //渲染組件虛擬DOM  
render(){   
 return(      
  <div style={{textAlign:'center',fontSize:28}}>        
    <Hello name={this.state.name} />        
    <br/>        
    <input type="text" onChange={this.handleChange} style={{border:'1px solid #ccc'}}/>      
  </div>   
 )  
}
});

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 原教程內容詳見精益 React 學習指南,這只是我在學習過程中的一些閱讀筆記,個人覺得該教程講解深入淺出,比目前大...
    leonaxiong閱讀 2,931評論 1 18
  • 在React Native中使用組件來封裝界面模塊時,整個界面就是一個大的組件,開發(fā)過程就是不斷優(yōu)化和拆分界面組件...
    ITxiansheng閱讀 981評論 1 2
  • 深入JSX date:20170412筆記原文其實JSX是React.createElement(componen...
    gaoer1938閱讀 8,175評論 2 35
  • 那個她 那個她是一個來自小縣城的姑娘,對物質要求很低,粗茶淡飯也就夠了。 由于父母離異,那個她對于愛情非常敏感,把...
    Herman閱讀 191評論 1 1
  • 今天,我感到了來自世界的深深的惡意。 上班,就要遵守規(guī)則,就要受管制,今天我深深地體會到了這一點。 下午,本來想請...
    梅洛的聽雨軒閱讀 616評論 6 0

友情鏈接更多精彩內容