ReactJS实战之生命周期(上)

简介: 组件初始化:先调用getDefaultProps()getInitialState()render第一次 render 后,调用 componentWillMount、componentDidMount之后:componentWillUpdate、componentDidUpdate这些流程就是为了形成钩子方法。

1 生命周期图

  • 流程图
  • image.png
  • 结构图
  • image.png

组件初始化:

  • 先调用getDefaultProps()
  • getInitialState()
  • render
  • 第一次 render 后,调用 componentWillMount、componentDidMount
  • 之后:componentWillUpdate、componentDidUpdate

这些流程就是为了形成钩子方法。

更新UI可直接调用 ReactDOM.render() 改变输出

image.png

image.png

那么如何使Clock组件真正 可重用和封装?它将设置自己的计时器,并每秒更新一次。

  1. 从封装时钟开始

image.png

  • 然而,它错过了一个关键的要求
    Clock设置一个定时器并且每秒更新UI应该是Clock的实现细节

理想情况下,我们写一次 Clock 然后它能更新自身

image.png

  • 为实现这个需求,我们需要为Clock组件添加状态
    状态与属性十分相似,但状态是私有的,完全受控于当前组件

局部状态就是:一个功能只适用于类

2 将函数转换为类

将函数组件 Clock 转换为类

  1. 创建一个名称扩展为 React.Component 的ES6 类
  2. 创建一个render()空方法
  3. 将函数体移动到 render()
  4. render() 中,使用 this.props 替换 props
  5. 删除剩余的空函数声明

image.png

Clock 现在被定义为一个类而不只是一个函数

使用类就允许我们使用其它特性,例如局部状态、生命周期钩子

目录
相关文章
|
10月前
|
前端开发
前端项目实战壹佰叁拾react-admin+material ui-react-admin之SelectColumnsButton之使用
前端项目实战壹佰叁拾react-admin+material ui-react-admin之SelectColumnsButton之使用
41 0
|
10月前
|
前端开发 数据库
前端项目实战伍拾壹​react-admin+material ui-踩坑-创建数据库完数据库表需要重启
前端项目实战伍拾壹​react-admin+material ui-踩坑-创建数据库完数据库表需要重启
67 0
|
10月前
|
资源调度 前端开发 数据库
前端项目实战拾柒-react-admin+postgrest+material ui最佳实践展示1
前端项目实战拾柒-react-admin+postgrest+material ui最佳实践展示1
84 0
|
10月前
|
前端开发
前端项目实战壹佰零肆react-admin+material ui-踩坑-List的用法之queryOptions
前端项目实战壹佰零肆react-admin+material ui-踩坑-List的用法之queryOptions
56 0
|
10月前
|
前端开发
前端项目实战壹佰零捌react-admin+material ui-踩坑-react-admin之sort
前端项目实战壹佰零捌react-admin+material ui-踩坑-react-admin之sort
65 0
|
10月前
|
前端开发
前端项目实战壹佰叁拾壹react-admin+material ui-react-admin之SelectColumnsButton中preferenceKey
前端项目实战壹佰叁拾壹react-admin+material ui-react-admin之SelectColumnsButton中preferenceKey
45 0
|
10月前
|
前端开发
前端项目实战玖拾玖react-admin+material ui-踩坑-List的用法之filters解决过滤的问题
前端项目实战玖拾玖react-admin+material ui-踩坑-List的用法之filters解决过滤的问题
96 0
|
10月前
|
前端开发
前端项目实战拾陆-react-admin路由样式替换antd
前端项目实战拾陆-react-admin路由样式替换antd
54 0
|
10月前
|
前端开发
前端项目实战拾-react打包之后页面无法显示
前端项目实战拾-react打包之后页面无法显示
84 0
|
10月前
|
前端开发
前端项目实战壹佰贰拾肆react-admin+material ui-react-admin之FilterButton之使用
前端项目实战壹佰贰拾肆react-admin+material ui-react-admin之FilterButton之使用
44 0