React Hooks 的限制主要有两条:不要在循环、条件或嵌套函数中调用 Hook;在 React 的函数组件中调用 Hook。那为什么会有这样的限制呢?...那为什么不要在循环、条件或嵌套函数中调用 Hook 呢?因为 Hooks 的设计是基于数组实现。在调用时按顺序加入数组中,如果使用循环、条件或嵌套函数很有可能导致数组取值错位,执行错误的 Hook。...为什么列表循环渲染的key最好不要用index举例说明变化前数组的值是[1,2,3,4],key就是对应的下标:0,1,2,3变化后数组的值是[4,3,2,1],key对应的下标也是:0,1,2,3那么...diff算法在变化前的数组找到key =0的值是1,在变化后数组里找到的key=0的值是4因为子元素不一样就重新删除并更新但是如果加了唯一的key,如下变化前数组的值是[1,2,3,4],key就是对应的下标...一般可以用哪些值作为key最好使用每一条数据中的唯一标识作为key,比如:手机号,id值,身份证号,学号等也可以用数据的索引值(可能会出现一些问题)