在react hooks函数组件里,比如说父组件有A和B个状态,B状态传给了子组件。那当父组件只更新了A状态。子组件会重新渲染不。
会
在 react 的一般规则中,只有父组件的某一个状态改变,父组件下面所有的子组件不论是否使用了该状态,都会进行重新渲染,这可以称之为无效渲染。
造成无效渲染的原因:
函数组件本身没有识别prop值的能力,每次父组件更新的时候都相当于是给子组件一个新的prop值。
可以使用react.Memo解决,memo是一种缓存技术,这个函数可以检测从父组件接收的props,并且在父组件改变state的时候对比这个state是否是本组件在使用,如果不是,则拒绝重新渲染。
会的啊 。 之前类组件的shouldComponentUpdate,componentWillReceiveProps 可以优化 。