美文网首页
React生命周期

React生命周期

作者: MajorDong | 来源:发表于2020-01-28 16:38 被阅读0次

React生命周期

react生命周期.png

普通DOM操作

import "./styles.css";

//create
let app = document.getElementById("app")
let div = document.createElement('div')
let state = 0

// UNSAFE_componentWillMount

//render == update
div.innerHTML = `
<div>
  <p id="number">${state}</p>
  <button id="plus">+1</button>
  <button id="die">die</button>
</div>
`
//mount
app.appendChild(div)

let number = document.getElementById("number")
let plus = document.getElementById('plus')
plus.onclick= () => {
  state += 1
  //update div == render
  number.innerText = state
}
let die = document.getElementById('die')
die.onclick  = () => {
  plus.onclick = null
  die.onclick = null
  div.remove()
  div = null // destroy div
}

生命周期使用场景

constructor

  1. 用于初始化内部状态
  2. 唯一可以直接修改state的地方

getDerivedStateFromProps

  1. 当state需要从props初始化时使用
  2. 尽量不要使用:维护两者状态一致性会增加复杂度
  3. 每次render都会调用
  4. 典型场景:表单控件获取默认值

componentDidMount

  1. UI渲染完成后调用
  2. 只执行一次
  3. 典型场景:获取外部资源、数据

componentWillUnmount

  1. 组件移除时被调用
  2. 典型场景:资源释放

getSnapshotBeforeUpdate

  1. 在页面render之前调用,state已更新
  2. 典型场景:获取render之前的DOM状态

componentDidUpdate

  1. 每次UI更新时被调用
  2. 典型场景:页面需要根据props变化重新获取数据

shouldComponentUpdate(手动判断更新)

  1. 决定Virtual DOM是否要重绘
  2. 一般可以由PureComponent自动实现
  3. 典型场景:性能优化

常用常考

  1. 请求数据 ajax constructor onClick 任何步骤都可以 componentDidmount()
  2. 更新数据 onClick componentDidmount()只会挂载一次
  3. 事件监听
  4. 初始化state constructor

常考

  1. shouldComponentUpdate(){ return false; } 阻止更新,允许我们手动的判断是否要进行组件的更新,根据组件的应用场景设置函数的合理返回值能够帮我们避免不必要的更新。性能优化

  2. 在生命周期的哪一步你应该发起AJAX请求

    componentDidMount()

相关文章

  • React概念图

    React概念图 React组件生命周期概念图 参考文档:React入门教程 组件生命周期React:组件生命周期...

  • React基础篇之组件的生命周期

    引出生命周期 react生命周期(旧) react生命周期(新) getSnapshotBeforeUpdate的...

  • React生命周期

    React v16.0前的生命周期 React v16.4+ 的生命周期图 React v16.9后这些生命周期钩...

  • React v16 生命周期

    React 16 生命周期 React 16.3 新增的生命周期方法 逐渐废弃的生命周期方法: 一般将生命周期分成...

  • 学习并实现react (4)

    实现生命周期 生命周期介绍 React 生命周期图 React 子组件在父组件下的生命周期流程 实现 compon...

  • React面试题 整理脑图

    react基础 React生命周期 react-router react进阶 react Hooks redux 其他

  • react/vue常见问题整理

    一、react 1. react生命周期 react 16生命周期相对于15的变化:componentWillMo...

  • React 组件生命周期

    组件生命周期 参考阅读: component-lifecycle react组件生命周期过程说明 react 组件...

  • 《深入React技术栈》学习笔记Ⅲ

    以下的生命周期都是在 React 15 的生命周期, React 16 的生命周期 API 已经发生变化。Reac...

  • React总结

    [toc] 1.React组件生命周期 1.1 生命周期图 组件的生命周期的图如下: 具体可参考React 组件生...

网友评论

      本文标题:React生命周期

      本文链接:https://www.haomeiwen.com/subject/fhcmthtx.html