React 组件生命周期
åœ¨æœ¬ç« èŠ‚ä¸æˆ‘们将讨论 React 组件的生命周期。
组件的生命周期�分�三个状�:
- Mounting(挂载):已�入真实 DOM
- Updating(æ›´æ–°):æ£åœ¨è¢«é‡�新渲染
- Unmounting(�载):已移出真实 DOM
挂载
当组件实例被创建并æ�’å…¥ DOM 䏿—¶ï¼Œå…¶ç”Ÿå‘½å‘¨æœŸè°ƒç”¨é¡ºåº�如下:
constructor(): 在 React 组件挂载之å‰�ï¼Œä¼šè°ƒç”¨å®ƒçš„æž„é€ å‡½æ•°ã€‚getDerivedStateFromProps(): 在调用 render 方法之å‰�调用,并且在åˆ�始挂载å�Šå�Žç»æ›´æ–°æ—¶éƒ½ä¼šè¢«è°ƒç”¨ã€‚render(): render() 方法是 class 组件ä¸å”¯ä¸€å¿…须实现的方法。componentDidMount(): 在组件挂载å�Žï¼ˆæ�’å…¥ DOM æ ‘ä¸ï¼‰ç«‹å�³è°ƒç”¨ã€‚
render() 方法是 class 组件ä¸å”¯ä¸€å¿…须实现的方法,其他方法å�¯ä»¥æ ¹æ�®è‡ªå·±çš„需è¦�æ�¥å®žçŽ°ã€‚
这些方法的详细说明,�以�考官方文档。
æ›´æ–°
�当组件的 state 或 props �生�化时,组件就会更新。
当组件的 props 或 state �生�化时会触�更新。组件更新的生命周期调用顺�如下:
getDerivedStateFromProps(): 在调用 render 方法之å‰�调用,并且在åˆ�始挂载å�Šå�Žç»æ›´æ–°æ—¶éƒ½ä¼šè¢«è°ƒç”¨ã€‚æ ¹æ�® shouldComponentUpdate() çš„è¿”å›žå€¼ï¼Œåˆ¤æ– React 组件的输出是å�¦å�—当å‰� state 或 props 更改的影å“�。shouldComponentUpdate():当 props 或 state å�‘生å�˜åŒ–时,shouldComponentUpdate() 会在渲染执行之å‰�被调用。render(): render() 方法是 class 组件ä¸å”¯ä¸€å¿…须实现的方法。getSnapshotBeforeUpdate(): 在最近一次渲染输出(æ��交到 DOM 节点)之å‰�调用。componentDidUpdate(): 在更新å�Žä¼šè¢«ç«‹å�³è°ƒç”¨ã€‚
render() 方法是 class 组件ä¸å”¯ä¸€å¿…须实现的方法,其他方法å�¯ä»¥æ ¹æ�®è‡ªå·±çš„需è¦�æ�¥å®žçŽ°ã€‚
这些方法的详细说明,�以�考官方文档。
�载
当组件从 DOM ä¸ç§»é™¤æ—¶ä¼šè°ƒç”¨å¦‚下方法:
componentWillUnmount(): 在组件�载�销�之�直接调用。
这些方法的详细说明,�以�考官方文档。
实例
以下是一个当�时间的实例,�秒更新:
实例
�试一下 »
以下实例在 Hello ç»„ä»¶åŠ è½½ä»¥å�Žï¼Œé€šè¿‡ componentDidMount 方法设置一个定时器,æ¯�éš”100毫秒é‡�新设置组件的é€�明度,并é‡�新渲染:
React 实例
�试一下 »
以下实例åˆ�始化 state , setNewnumber 用于更新 state。所有生命周期在 Content 组件ä¸ã€‚
React 实例
�试一下 »
点我分享笔记