记录一下 react 学习过程中的一些概念认知

  • useCallback 的参数用于避免重复创建函数的实例,也保证 props 的引用相等,避免不必要的渲染
  • useEffect 更相当于 watch,一个函数组件中可以包含多个 effect,第一次执行在 componentDidMount 之后执行,之后开始参数的监听
  • pureComponent 比普通的 React.component 多了一个生命周期函数——shouldComponentUpdate()
  • 函数组件本身是没有 ref 属性可用的,因为并没有 react 实例
  • useMemo 的参数变化时才会执行内联函数,一般用于密集型计算

react 生命周期

react生命周期.png

包含不常用周期

react生命周期-all.png

react 的函数式组件和类组在作为子组件时会有加载顺序不一致的,函数式组件没有生命周期,使用 hook 模拟,函数式组件会先于父组件加载完毕,如果有较强的加载顺序控制,建议使用类组件。

关于 componentDidUpdate 这个生命周期钩子,当父组件的 prop 或者 state 变化时,子组件会触发重渲染(只要父组件更新势必会触发子组件重渲染),父组件渲染完成并且子组件也渲染完成(子组件在父组件 render 后 render)后首先触发子组件的 update(此时子组件在 render 时能拿到最新的 prop),最后触发自己的 update,如果子组件有在 componentDidUpdate 内做一些 setState 或者其他触发渲染的操作,则会再次进入子组件自己的 componentDidUpdate 这个生命周期钩子内,此时 prevProps===this.props,因为父组件并没有变在这里插入图片描述在这里插入图片描述

上次更新: 7/7/2020, 11:00:09 PM