在没有覆盖shouldComponentUpdate的组件中,forceUpdate和setState有什么区别吗?
更新:我已经知道文档说了什么,并且 forceUpdate 不是推荐的方法。我只是想更深入地了解正在发生的事情。我想知道为什么?而且我已经知道 setState 将传递的对象(状态“delta” - 有点像 sql 更新)与当前状态对象合并。
假设一个简单的用例:不需要撤消或时间旅行功能。无需在 shouldComponentUpdate 内部进行指针比较。事实上,根本不需要使用 shouldComponentUpdate 。
在这种情况下,在我看来,改变状态并调用 forceUpdate() 是使用 React 的一种完全有效的方式。从黑匣子的角度来看,这两种技术似乎具有完全相同的效果:
技术#1: this.state.x = 10;this.forceUpdate();
技术#2: this.state.setState({x:10});
再说一次,我已经知道有些人更喜欢从不改变状态。并使用函数式编程风格。我只是想知道是否有任何技术原因可以避免使用技术 #1。或者我错过了什么?