父组件中状态的改变会让所有的子组件重新渲染,但是对于没有用到被改变的那个状态的组件来说,重新渲染是完全没有必要的。所以,React.memo就诞生了。
PureComponent 只能用于class组件,memo只能用于function组件
import React, { Component,memo } from 'react'
export default class App extends Component {
state = {
name:'lala'
}
render() {
return (
<div>
<button onClick={()=>{
this.setState({name:'haha'})
}}>{this.state.name}</button>
<Child />
</div>
)
}
}
const Child = memo(()=>{
console.log('child')
return <div>Child</div>
})