为什么在反应中需要 getSnapshotBeforeUpdate
Why getSnapshotBeforeUpdate is nedded in react
我正在学习 React 生命周期方法,但在查询时卡住了,即使在网上进行了大量研究后也找不到答案。
根据react 官方文档here,据说getSnapshotBeforeUpdate 方法用于在DOM 提交之前执行某些操作。该函数返回的快照稍后将被componentDidUpdate使用。
查询:
参数'prevProps'和'prevState'已经存在于方法componentDidUpdate中,那为什么还需要函数getSnapshotBeforeUpdate的帮助呢?我的意思是函数 componentDidUpdate 有必要的输入来执行 getSnapshotBeforeUpdate 正在做的事情。
如有任何帮助,我们将不胜感激。
最好的,
拉胡尔
正如文档中通过示例明确提到的那样,getSnapshotBeforeUpdate
方法的目的不仅仅是从 prevProps
and/or prevState
获取信息。
但是它可以用来在DOM更新之前从之前的DOM中提取一些信息(比如一个div的当前滚动位置)。大多数情况下,DOM 相关值可能不会被 prevProps
或 prevState
涵盖。
当您只考虑 componentDidUpdate
方法时,DOM 在被调用时已经更新(因此名称为 DidUpdate)。所以所有与之前DOM相关的信息到那个时候都丢失了。
因此,从 getSnapshotBeforeUpdate
中提取的关于先前 DOM 的信息可以传递给 componentDidUpdate
方法以在那里使用它。
我正在学习 React 生命周期方法,但在查询时卡住了,即使在网上进行了大量研究后也找不到答案。
根据react 官方文档here,据说getSnapshotBeforeUpdate 方法用于在DOM 提交之前执行某些操作。该函数返回的快照稍后将被componentDidUpdate使用。
查询: 参数'prevProps'和'prevState'已经存在于方法componentDidUpdate中,那为什么还需要函数getSnapshotBeforeUpdate的帮助呢?我的意思是函数 componentDidUpdate 有必要的输入来执行 getSnapshotBeforeUpdate 正在做的事情。
如有任何帮助,我们将不胜感激。
最好的, 拉胡尔
正如文档中通过示例明确提到的那样,getSnapshotBeforeUpdate
方法的目的不仅仅是从 prevProps
and/or prevState
获取信息。
但是它可以用来在DOM更新之前从之前的DOM中提取一些信息(比如一个div的当前滚动位置)。大多数情况下,DOM 相关值可能不会被 prevProps
或 prevState
涵盖。
当您只考虑 componentDidUpdate
方法时,DOM 在被调用时已经更新(因此名称为 DidUpdate)。所以所有与之前DOM相关的信息到那个时候都丢失了。
因此,从 getSnapshotBeforeUpdate
中提取的关于先前 DOM 的信息可以传递给 componentDidUpdate
方法以在那里使用它。