react的生命周期:
render调用的是1+n次的。
只要修改状态,render就会调用的。
render有一个兄弟只调用一次的。
组件挂载到页面之后还会调用兄弟的,只调用一次。
组件确实被卸载了,但是错误出现了。
卸载组件之前需要清除定时器。
其他的写法:
---37---
旧的生命周期:
---38---
右面的是十分重要的。
这三条线都会触发生命周期的。
注意下:
如果这个钩子写了并且返回的是false,则都不能更新,并且也不能调用render。
---39---
看粉色的线:强制更新,不对状态修改进行更新。
---40---
父子的类的组件。
此时A是父组件B是子组件。
组件将要接收props时候调用的。
这里面有一个坑就是第一次不算的。
---41---
总结:
1. 初始化阶段: 由ReactDOM.render()触发---初次渲染
1. constructor()
2. componentWillMount()
3. render()
4. componentDidMount() =====> 常用
一般在这个钩子中做一些初始化的事,例如:开启定时器、发送网络请求、订阅消息
2. 更新阶段: 由组件内部this.setSate()或父组件render触发
1. shouldComponentUpdate()
2. componentWillUpdate()
3. render() =====> 必须使用的一个
4. componentDidUpdate()
3. 卸载组件: 由ReactDOM.unmountComponentAtNode()触发
1. componentWillUnmount() =====> 常用
一般在这个钩子中做一些收尾的事,例如:关闭定时器、取消订阅消息
---42---
一个超屌的网站:bootcdn.cn
新版本的生命周期钩子:
新版本的需要加UNSAFE的前缀警告才会消失的。
1 2 3需要加unsafe。
新旧的对比:
---43---
---44---