React觸發(fā)render的實現方法
React觸發(fā)render方法
1、setState
this.setState({});
2、forceUpdate
this.forceUpdate();
3、通過狀態(tài)管理
如mobx,redux等
React-forceUpdate()
默認情況下,當組件的state或props改變時,組件將重新渲染。
如果你的render()方法依賴于一些其他的數據,你可以告訴React組件需要通過調用forceUpdate()重新渲染。
調用forceUpdate()會導致組件跳過shouldComponentUpdate(),直接調用render()。
這將觸發(fā)組件的正常生命周期方法,包括每個子組件的shouldComponentUpdate()方法。
forceUpdate就是重新render。
有些變量不在state上,當時你又想達到這個變量更新的時候,刷新render;或者state里的某個變量層次太深,更新的時候沒有自動觸發(fā)render。
這些時候都可以手動調用forceUpdate自動觸發(fā)render
Sub.js class Sub extends React.Component{ construcotr(){ super(); this.name = "yema"; } refChangeName(name){ this.name = name; this.forceUpdate(); } render(){ return (<div>{this.name}</div>); } } App.js class App extends React.Component{ handleClick(){ this.subRef.refChangeName("yemafuren"); } render(){ return (<div> <Sub ref={(sub)=>{this.subRef = sub;}} /> <button onClick={this.handleClick}>click</button> </div>); } }
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
React?Server?Component混合式渲染問題詳解
React?官方對?Server?Comopnent?是這樣介紹的:?zero-bundle-size?React?Server?Components,這篇文章主要介紹了React?Server?Component:?混合式渲染,需要的朋友可以參考下2022-12-12Vite+React搭建開發(fā)構建環(huán)境實踐記錄
這篇文章主要介紹了Vite+React搭建開發(fā)構建環(huán)境實踐,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09