React类式组件生命周期
2022/3/4 6:17:43
本文主要是介绍React类式组件生命周期,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
React 类式组件生命周期
1. 首次加载时
1) contructor
类式组件的构造器,可在构造器中初始化组件状态( state )
2) getDerivedStateFromProps
state的值在任何时候
都取决于props( props变化时更新state ),接收两个参数props
、state
3) render
渲染函数,返回vnode
4) componentDidMount
组件第一次
被渲染到DOM中,可在此钩子中设置定时器,调用AJAX
2. 更新时
1) getDerivedStateFromProps
2) shouldComponentUpdate
根据return的布尔值
决定是否更新组件
3) render
4) getSnapshotBeforeUpdate
获取更新前的快照,其返回值默认作为componentDidUpdate
第三个参数
5) componentDidUpdate
组件更新之后,其可接收三个参数未更新前的props
、未更新前的state
、getSnapshotBeforeUpdate的返回值
3. 卸载时
1) componentWillUnmount
组件即将卸载之前调用的钩子,可在此阶段销毁定时器
4. Demo
import { Component, Fragment } from 'react'; import { render, unmountComponentAtNode } from 'react-dom'; class Demo extends Component { constructor(props) { super(props); this.state = { title: 'This is a initial demo.' }; console.log('constructor'); } static getDerivedStateFromProps(props, state) { console.log('getDerivedStateFromProps'); return { subTitle: props.subTitle }; } componentDidMount() { console.log('componentDidMount'); } getSnapshotBeforeUpdate() { console.log('getSnapshotBeforeUpdate'); return { snapshotRes: 'getSnapshotBeforeUpdate' }; } shouldComponentUpdate() { console.log('shouldComponentUpdate'); return true; } componentDidUpdate(preProps,preState,snapshotValue) { console.log('componentDidUpdate'); } componentWillUnmount() { console.log('componentWillUnmount'); } /** * 使用箭头函数,防止找不到this */ updateComponent = () => { this.forceUpdate(); } unmountComponent = () => { unmountComponentAtNode(document.querySelector('#app')); } render() { console.log('render'); const { title, subTitle } = this.state; return ( <Fragment> <h1>{ title }</h1> <h2>{ suTitle }</h2> <button onClick={ this.updateComponent }>Force update</button> <button onClick={ this.unmountComponent }>Unmount component</button> </Fragment> ) } } render(<Demo suTitle="Alison" />, document.querySelector('#app'));
这篇关于React类式组件生命周期的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16Vue3资料:新手入门必读教程
- 2024-11-16Vue3资料:新手入门全面指南
- 2024-11-16Vue资料:新手入门完全指南
- 2024-11-16Vue项目实战:新手入门指南
- 2024-11-16React Hooks之useEffect案例详解
- 2024-11-16useRef案例详解:React中的useRef使用教程
- 2024-11-16React Hooks之useState案例详解
- 2024-11-16Vue入门指南:从零开始搭建第一个Vue项目
- 2024-11-16Vue3学习:新手入门教程与实践指南
- 2024-11-16Vue3学习:从入门到初级实战教程