在react中snapshot和prevState、prevProps来自componentDidUpdate有什么不同?

EUN*_* JO 5 reactjs react-lifecycle

我刚刚开始学习React。

在学习 LifeCycle 时,我想知道componentDidUpdate方法。

据我所知,componentDidUpdate方法可以有三个参数(prevProps, prevState, snapshot)。prevState如果我能从中找出componentDidUpdatesnapshot为了什么?

这可能不重要,但我只是很好奇

Dre*_*ese 3

来自componentDidUpdate文档:

\n
\n

如果您的组件实现getSnapshotBeforeUpdate()生命周期\n(这种情况很少见),则它返回的值将作为第三个\n\xe2\x80\x9csnapshot\xe2\x80\x9d 参数传递给componentDidUpdate(). 否则该参数将是未定义的。

\n
\n

获取更新前快照

\n
\n

getSnapshotBeforeUpdate()在最近渲染的输出被提交到例如 DOM 之前调用。它使您的组件能够在 DOM 发生更改之前捕获一些信息(例如滚动位置)。此生命周期返回的任何值都将作为参数传递给componentDidUpdate()

\n

此用例并不常见,但可能会出现在需要以特殊方式处理滚动位置的聊天线程等 UI 中。

\n

快照值(或null应返回

\n
\n

用例主要与查询 DOM 或任何无法state从或派生的内容相关props

\n