Skip to main content

effect

useEffect

DOM 更新完成后执行某些副作用操作,如数据获取,设置订阅以及手动更改 React 组件中的 DOM 等 有 componentDidMount,componentDidUpdate 和 componentWillUnmount 的功能)

useCallback 和 useMemo

相同:useCallback 和 useMemo 都是性能优化的手段,类似于类组件中的 shouldComponentUpdate,在子组件中使用 shouldComponentUpdate, 判定该组件的 props 和 state 是否有变化,从而避免每次父组件 render 时都去重新渲染子组件。 区别:useCallback 和 useMemo 的区别是useCallback返回一个函数,当把它返回的这个函数作为子组件使用时,可以避免每次父组件更新时都重新渲染这个子组件.useMemo 返回的的是一个值,用于避免在每次渲染时都进行高开销的计算。

useLayoutEffect 和 useEffect 的区别

useEffect 是异步执行的,而 useLayoutEffect 是同步执行的。 useEffect 的执行时机是浏览器完成渲染之后,而 useLayoutEffect 的执行时机是浏览器把内容真正渲染到界面之前,和 componentDidMount 等价

Component 还是 PureComponent

PureComponent 有一个 shouldComponentUpdate 方法,当 props 或者 state 改变时,PureComponent 将对 props 和 state 进行浅比较。