Demo 代码里面的 "Clock did unmount" 应为 "Clock did mount"。
作者回复: 是的。render 调用后触发 update 流程。
作者回复: 感谢支持!
作者回复: componentDidUpdate 是标准的组件 lifecycle 方法,prevState,prevProps 表示上一次 render 的状态和属性。而 prevScrollHeight 则来自 getSnapshotBeforeUpdate 的返回值。this.setState 可以接受一个函数作为参数,prev 就是上一个 state。可以参考官方文档:https://reactjs.org/docs/react-component.html#setstate
作者回复: 你看的中文文档没有及时更新,componentWillReceiveProps componentWillUpdate 都是过期的方法,未来版本会移除。建议以英文官方文档为主。
作者回复: 这是用的 class property 语法,属于考察期的语法规范,但是 babel 可以支持。method = () => {} 这种方式的类成员定义会自动绑定 this。
作者回复: 加上 key 之后是浏览器的自动优化调整了 scrollTop。这里演示的是如果需要 update 前获取 dom 状态,那么需要用这个 api。
作者回复: 是的,16.3 中已经去掉,同时去掉的还有 componentWillReceiveProps, componentWillUpdate
作者回复: ref 可以获取原生节点的引用,这里的node 就是原生节点,存起来可供后续直接访问。
作者回复: 也可以放在 constructor 里,两者是一样的,如果 state 是直接生命的值,作为类的属性更加直观点。
作者回复: PPT 没有下载哦。