赞
踩
setState() 的两个作用
过程:父组件重新渲染时,也会重新渲染子组件,但只会渲染当前组件子树(当前组件以其所有子组件)
需求:随机生成数字,显示在页面,如果生成的数字与当前显示的数字相同,那么就不需要更新UI,反之更新UI。
利用nextState参数来判断当前组件是否需要更新
class App extends React.Component { state = { number: 0 } // 点击事件,每次点击生成一个随机数 hanldeBtn = () => { this.setState({ number: Math.floor(Math.random() * 3) }) } // 将要更新UI的时候会执行这个钩子函数 shouldComponentUpdate(nextProps,nextState) { // 判断一下当前生成的 值是否与页面的值相等 if(nextState.number !== this.state.number){ return true } return false } render() { return ( <div> 随机数:{this.state.number} <br /> <button onClick={this.hanldeBtn}>生成随机数</button> </div> ) } }
利用props参数来判断是否需要进行更新
class App extends React.Component { state = { number: 0 } // 点击事件,每次点击生成一个随机数 hanldeBtn = () => { this.setState({ number: Math.floor(Math.random() * 3) }) } render() { return ( <div> <NumberBox number={this.state.number} /> <button onClick={this.hanldeBtn}>生成随机数</button> </div> ) } } class NumberBox extends React.Component { // 将要更新UI的时候会执行这个钩子函数 shouldComponentUpdate(nextProps, nextState) { // 判断一下当前生成的 值是否与页面的值相等 if (nextProps.number !== this.props.number) { return true } return false } render() { return ( <h1>随机数:{this.props.number} </h1> ) } }
本质上就是一个JS对象,用来描述你希望在屏幕上看到的内容
执行过程
黑马前端专栏干货多多,关注再学,好方便~
2023年前端学习路线图:课程、源码、笔记,技术栈另外此线路图实时更新!需要课后资料的友友们,可以直接告诉我喔~
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。