Appearance
getSnapshotBeforeUpdate()
本节目标:理解“getSnapshotBeforeUpdate()”的核心思路,并能把它用于实际开发或面试表达。
说明:原 OneNote 中有图片引用,但图片未包含在导出目录中;本页保留了可用的文字与代码内容。
getSnapshotBeforeUpdate()
- 被调用于
render之后,可以读取但无法使用DOM的时候。 - 返回一个值,作为
componentDidUpdate的第三个参数; - 配合
componentDidUpdate,可以覆盖componentWillUpdate的所有用法
1:在render之前调用,state已更新
2:典型场景:获取render之前的dom状态
例一:
每一秒钟都会加入一个新的\<div\>msg : number\</div\>
假如我们使用滑轮移到某个地方,内容物会随着时间不断下降,因为新生成的div会把它挤下来,如何保持不动了?
\<script type = 'text/babel'\>
</script>
.wrap{
height: 100px;
width :200px;
padding: 1px solid #eee;
overflow:auto;
}关键在于通过getSnapshotBeforeUpdate方法,获取dom信息,然后通过componentDidUpdate反映。 例二:
