当前位置: 首页 > news >正文

WordPress文字添加/杭州seo推广优化公司

WordPress文字添加,杭州seo推广优化公司,网站快速排名技巧,有哪些做淘宝素材的网站有哪些目录 一、什么是react? 二、react的生命周期 三、对于react生命周期的思考 熟练使用react开发项目之后,最近在学习react的底层原理以及源码,顺便总结一下react的生命周期。 一、什么是react? 在学习原理和源码之前我们必须先…

目录

一、什么是react?

二、react的生命周期

三、对于react生命周期的思考


熟练使用react开发项目之后,最近在学习react的底层原理以及源码,顺便总结一下react的生命周期。

一、什么是react?

在学习原理和源码之前我们必须先明白什么是react。官方文档对于react的定义是:

A JavaScript library for building user interfaces

用于构建用户界面的 JavaScript 库

其实我们可以简单的理解为react主要做两件事:响应事件、渲染UI

二、react的生命周期

在学习react的生命周期函数之前我们先来简单的了解一下react的渲染过程:

首屏渲染过程如下:

  1. 调用ReactDOM.render
  2. 进入Render阶段
  3. 采用深度优先遍历创建fiber树(虚拟dom节点)
  4. 进入commit阶段,即进入渲染器渲染视图

组件更新阶段的过程:

  1. 进入Render阶段
  2. 采用深度优先遍历的方式创建fiber树
  3. 通过diff算法标记变化
  4. 进入commit阶段,执行变化对应的视图操作

由以上的过程描述我们可以把react的生命周期分为两个阶段:render阶段和commit阶段

接下来我们就来了解一下render阶段和commit阶段,页面挂载、组件更新以及组件卸载时分别涉及的钩子函数以及各个钩子函数的作用:

旧的生命周期(v16.3之前):

MountUpdateUnmount
render阶段

constructor

加载的时候调用一次,可以初始化state

→ 

componentWillMount

组件加载时调用,整个生命周期只调用一次,此时可以修改state

render

创建虚拟dom,进行diff算法,更新dom树

props更新时会触发componentWillReceiveProps

组件接收新的props时调用

shouldComponentUpdate

组件接收新的prop或者state时调用,返回true则会更新dom,返回false则阻止更新

componentWillUpdate

组件将要更新时调用,可以修改state

render

创建虚拟dom,进行diff算法,更新dom树

commit阶段

componentDidMount

组件渲染之后调用,只调用一次,可获取真实dom节点

componentDidUpdate

组件更新完后调用

componentWillUnmount

组件即将卸载前调用

 

新的生命周期(v16.3开始):

MountUpdateUnmount
render阶段

constructor

加载的时候调用一次,可以初始化state

→ 

getDerivedStateFromProps(props,state)

用来替换componentWillReceiveProps()更为安全的方案。不能使用this,返回一个取决于props变化的对象用来更新state,返回null则不需要更新state,解决在某些特殊情况下state的值取决于props的问题。

render

创建虚拟dom,进行diff算法,更新dom树

getDerivedStateFromProps

同左边

shouldComponentUpdate

组件接收新的prop或者state时调用,返回true则会更新dom,返回false则阻止更新

render

创建虚拟dom,进行diff算法,更新dom树

pre-commit阶段

getSnapshotBeforeUpdate

用来替换componentWillUpdate()更为安全的方案。在更新之前被调用,返回的值会传给componentDidUpdate(),常用于在异步渲染期间改变窗口尺寸等

commit阶段

componentDidMount

组件渲染之后调用,只调用一次,可获取真实dom节点

componentDidUpdate

组件更新完后调用

componentWillUnmount

组件即将卸载前调用

 

总结:如上描述可知在16.x之前和之后的生命周期函数的变化有,16.x的生命周期弃用了componentWillMount、componentWillReceiceProps、componentWillUpdate

新增了getDerivedStateFromProps、getSnapshotBeforeUpdate来代替以上弃用的三个钩子函数。在react16的版本中并未完全删除这三个生命周期函数,而是新增UNSAFE_前缀去使用(UNSAFE_componentWillMount等),废弃的钩子和新增的钩子函数同时使用会报错,但是在react17中则弃用的钩子函数将被删除。

三、对于react生命周期的思考

其实react生命周期过程没有改变,只是16.3的版本加入fiber之后,将以前的同步渲染改成了异步渲染,因此对应生命周期函数的处理方式也改变了。

http://www.lbrq.cn/news/1275769.html

相关文章:

  • Tab标签切换wordpress/更先进的seo服务
  • 管局审核一定要能打开网站/宁德seo公司
  • 杭州品牌网站制作/关键词挖掘查询工具爱站网
  • 个人网站备案信息/超级外链推广
  • 建设部网站施工合同范本去哪找/广告语
  • 厦门谁需要网站建设/3322免费域名注册
  • 网站后台建设教程/网络推广公司北京
  • 昆山教育平台网站建设/站长工具官网域名查询
  • 可以盗链图片的网站/工程建设数字化管理平台
  • 西安教育平台网站建设/网站建设工作总结
  • 品牌网站建设小蝌蚪1a/谷歌google浏览器官方下载
  • 12数据网站建设/重庆放心seo整站优化
  • 创建网站论坛/许昌网站seo
  • 邹平做网站哪家好/交换链接营销成功案例
  • 最新新闻热点事件佩洛西/重庆关键词优化服务
  • 名聚优品一家只做正品的网站/seo运营经理
  • 微信开发者工具教程实例/武汉seo关键词排名
  • 如何做直销产品的网站/百度网盘资源共享
  • 淘宝客做网站怎样推广/舆情服务网站
  • 菏泽科技网站建设/张家界百度seo
  • 中国建设基础设施公司网站/百度seo优化公司
  • 注册网站获取网易邮箱安全码/企业网站推广的形式有哪些
  • 手机网站建设要注意哪些问题/老鬼seo
  • 新闻发布会是什么意思/seo排名点击工具
  • 外贸网站服务商/网络营销策略优化
  • flash网站导航条怎么做/怎么制作公司网站
  • 优化网站公司价格是多少钱/seo网站诊断顾问
  • 杭州网站建设过程/搜狗网站收录提交入口
  • 遵义水网站建设/百度推广竞价排名
  • jsp技术做网站有什么特点/线上网络平台推广
  • ubuntu 镜像克隆
  • 算法进阶:动态规划在回文串问题中的核心思想与实践
  • 【暑期每日一题】洛谷 P9390 金盏花
  • 新手docker安装踩坑记录
  • 异常检测:算法分类及经典模型概览
  • java web 通过 servlet 给前端设置编码格式