调用 forceUpdate
后当前组件会跳过 shouldComponentUpdate
这个钩子,尽管手动返回 false
,也一样会更新,但是需要注意的是,子组件的更新还是会受到 shouldComponentUpdate
控制。
调用 forceUpdate()
将会导致 render()
方法在相应的组件上被调用,并且子级组件也会调用自身的 render()
,但是如果标记改变了,那么 React 仅会更新 DOM。
state
或 props
的数据this.state.xxx = xxx
后调用 forceUpdate()
使得组件重新渲染state
或 props
中的变量层级太深,更新时候没有自动触发重渲染state
或 redux 等 flux 架构管理 state
不过对于以上情况,官方文档并不推荐这样处理,正常情况下应该避免使用 forceUpdate
,而是通过 state
或 props
去驱动更新视图。