https://zh-hans.reactjs.org/docs/hooks-rules.html
useState
01: useState返回一个数组[值,函数]
02: 首次渲染的时候被创建(重复渲染不会再次创建), React会在重复渲染时记住它当前的值,并且再次渲染时,提供最新的值给我们的函数
03: react记录的state的值,是怎么对应Hook中的数据?靠的是 Hook 调用的顺序来一一对应
useEffect
info1 : 不依赖props和state的函数提到你的组件外面
info2 : 仅被effect使用的函数放到effect里面
info3 : useEffect内需要依赖props中的数据
info4 : useEffect内 => 需要依赖组件内的函数或者props传进来的函数,使用useCallback包一层,可以让函数缓存起来
info4 : useEffect内拿到了一些旧的props和state,使用ref(获取到的是最新值)
info5 : 如果依赖组件内渲染,依赖传入的num, 必须要检测num变化在渲染
01: 告诉 React 组件需要在渲染后执行某些操作,React 会保存你传递的函数
02: JavaScript 的闭包机制,直接访问组件内部 count state 变量
03: 每次我们重新渲染,都会生成新的 effect,替换掉之前的
04: []若为空,只在激活时候触发一次,组件更新时候不在执行,因为它不需要监视任何变量, 反之需要触发
05: Effect总是在react的DOM更新完毕后执行,类似屁股函数,页面DOM渲染完毕在操作页面的DOM, 类似componentDidMount+componentDidUpdate的集合,然后再去操作更新DOM
06: 解决了class组件,所有副作用都写在一个生命周期函数内,更新某一个时候需要更新所有问题
07: useEffect可以分离每个业务逻辑,不必更新所有