当前位置: 代码迷 >> 综合 >> react 生命周期 钩子函数(笔记 2)
  详细解决方案

react 生命周期 钩子函数(笔记 2)

热度:59   发布时间:2023-11-24 04:55:52.0

五.  shouldComponentUpdate(){}  :   每当进行数据更新或页面重新渲染时会触发,当函数返回值为 true 时页面可以更新,当返回值为 false 时页面不会更新而会保持原有状态。

      class App extends React.Component{state ={m:0}shouldComponentUpdate(){console.log("----shouldComponentUpdate");return true;}render(){console.log("----render");return(<div>App :{this.state.m}<button onClick={()=>{this.setState({m:1})}}>更新</button></div>)}}

shouldComponentUpdate(){} 函数可以做性能优化使用,在函数内部判断修改的数据是否跟原数据一致,如不一致则修改,一致则保持原有状态。

        shouldComponentUpdate(nextProps,nextState){console.log("----shouldComponentUpdate");if(this.state.m=== nextState.m)return false;return true;}

六.  componentWillUpdate(){}  :  组件每次更新前调用此钩子函数。

componentWillUpdate(){console.log("----componentWillUpdate");}

由于安全性问题后改名为 UNSAFE_componentWillUpdate(){}

        UNSAFE_componentWillUpdate(){console.log("----UNSAFE_componentWillUpdate");}

 七. componentDidUpdate(){} :  组件每次更新完毕立即执行

        //第一次更新完毕执行componentDidUpdate(){console.log("----componentDidUpdate");}

八. componentWillUnmount(){} :  将要卸载函数,在将要卸载函数组件前调用

        componentWillUnmount(){console.log("----componentWillUnmount");} render(){console.log("----render");return(<div>App :{this.state.m}<button onClick={()=>{ReactDOM.unmountComponentAtNode(document.getElementById('app'))}}>卸载</button></div>)}

 

  相关解决方案