1、关于useState
-
给usestate传一个函数,这样在调用usestate的时候才会去计算赋值,可以节约性能,也被称为惰性初始化
-
useState性能优化:用object.is先做比较,新值与老值不一样时才做更新
2、关于useEffect
-
useEffect也是一个函数,会在每次渲染的时候执行,每次渲染都是独立的闭包
-
useEffect相当于componentDidMount、componentDidUpdate和componentWillmount
3、useEffect和useLayoutEffect
-
useEffect在浏览器渲染结束之后执行,useLayoutEffect则是在dom更新完成后,浏览器渲染之前执行
-
useEffect不会阻塞浏览器渲染,useLayoutEffect会阻塞浏览器渲染
4、自定义hook
-
自定义hook可以在组件间重用一些逻辑状态
-
Hook是一种复用的逻辑状态,每次调用都是一个独立的state
-
自定义hook更像是一种约定,而不是一种功能,函数名必须以use开头