react 生命周期函数

122 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第29天
一、react 生命周期函数
1.Mounting 挂载阶段
constructor()、componentWillMount()组件挂载到页面之前、render()创建虚拟 DOM,进行 diff运算,更新 DOM 树。不可进行 setState()、componentDidMount()组件挂载到页面之后,可以在此请求数据
2.Updateing 更新阶段
componentWillReceiveProps()父级数据发生变化、shouldComponentUpdate()、性能优化:这个函数只返回 true 或 false,表示接下来的组件是否需要更新(重新渲染)、返回 true 就是紧接着以下的生命周期函数,返回 false 表示组件不需要重新渲染,不再执行任何生命周期函数(包括 render)、componentWillUpdate() 组件更新之前,不可进行 setState() 会导致函数调用 shouldComponentUpdate 从而进入死循环、render()、componentDidUpdate()组件更新之后
3.Unmounting 卸载阶段
componentWillUnmount 组件卸载和销毁之前立刻停用、可以在此销毁定时器,取消网络请求,消除创建的相关 DOM 节点等

二、react 生命周期中,最适合与服务端进行数据交互的是componentDidMount,componentDidMount方法中的代码,是在组件已经完全挂载到网页上才会调用被执行,所以可以保证数据的加载。

三、react 中 component 和 pureComponent 区别
Component 是 ReactApp 的基本构建的单位,也是 React 中的基本代码复用单位。
PureComponent 与 Component 在除了其 shouldComponentUpdate 方法的实现之外几乎完全相同。PureComponent 已经替我们实现了 shouldComponentUpdate 方法。对于PureComponent 而言,当其 props 或者 state 改变之时,新旧 props 与 state 将进行浅对比(shallow comparison)。另一方面,Component 默认的情况下其 shouldComponentUpdate 方法并不进行新旧 props 与 state 的对比。

四、组件是 React 应用 UI 的构建块。这些组件将整个 UI 分成小的独立并可重用的部分,每个组件彼此独立,而不会影响 UI 的其余部分。
状态是 React 组件的核心,是数据的来源,必须尽可能简单。基本上状态是确定组件呈现和行为的对象。与 props 不同,它们是可变的,并创建动态和交互式组件。