1.高阶组件为了复用。导致代码层级复杂
2.生命周期的复杂
3.写成function组件,无状态组件,但是又需要状态,改成class组件成本太高
第二个参数如果是空数组,那么第一个参数只走一次
如果【name】name作为依赖存在,只要被修改,第一个参数九会走一次
在这里可以看做是对状态数据的再次加工处理
防止因为组件重新渲染,导致方法再次被创建,起到缓存的作用
只有name改变,函数才会重新生成一次
如果传入空数组,函数首次执行生成,之后不变
如果不传数据,每次都会生成新的函数