面试了许多求职者,很多求职者只知其然,而不知所以然,写此文章为广大前端小伙伴指引迷津。纯干货!纯干货!纯干货!
目录
生命周期
生命周期
答:组件从 被创建 到 被销毁 的过程称为组件的生命周期。
生命周期
常见的生命周期。
- constructor:该方法只会执行一次,组件的初始化工作,例如:初始化组件的 state。
- render:是类组件中唯一必须实现的方法,它的返回值将作为页面渲染的视图。
- componentWillReceiveProps:当从父类接收到 props 并且在调用另一个渲染器之前调用。
- shouldComponentUpdate:这个方法用来判断是否需要调用 render 方法重绘 dom。返回true更新组件,返回false,阻止render渲染,默认返回true。
- componentWillUpdate:在组件即将更新之前执行。(如果 shouldComponentUpdate 函数返回false,则不会调用 componentWillUpdate 方法。)
- componentDidUpdate:在渲染发生后立即调用。
- componentWillMount:在渲染之前执行。
- componentDidMount:仅在第一次渲染后在客户端执行(发异步数据请求)。
- componentWillUnmount:从 DOM 卸载组件后调用。用于清理内存空间。
新(react17)旧比较(废三增三)
- 废弃了
componentWillMountcomponentWillReceivePropscomponentWillUpdate
- 增加了
getDerivedStateFromError:在渲染阶段捕捉到了后代组件中的错误时会执行。getDerivedStateFromProps:让组件在 props 变化时更新 state执行。getSnapshotbeforeUpdate:此生命周期函数在最近一次渲染提交至 DOM 树之前执行,此时 DOM 树还未改变,我们可以在这里获取 DOM 改变前的信息,例如:更新前 DOM 的滚动位置。(它接收两个参数,分别是:prevProps、prevState,上一个状态的 props 和上一个状态的 state。)
面试大白话
答:首先,生命周期是组件从 被创建 到 被销毁 的过程其常见的生命周期render阶段...commit阶段在react17有些改变其中废弃了3个生命周期:componentWillMount、componentWillReceiveProps、componentWillUpdate。新增了getDerivedStateFromError、getDerivedStateFromProps、getSnapshotbeforeUpdate。