学习React记录篇07


hooks的规则

  • 只在React函数中调用
  • 只在顶层调用hooks,并且不要在循环,条件判断或嵌套函数中调用hooks

正常调用:

 错误调用:

首先需要探讨为什么React需要不可变,也就是单向数据循环

 上面是一段React的代码,先把setData函数转化

 实际上React对于响应式数据做了一层浅层比较,如果数据是可变的话

 直接修改数据,如果数据是Object类型的,那么就无法判断数据改变,从而不会重新渲染组件

对于React为什么不选择深层比较,深层比较是非常影响性能的。

数组的不可变性

 

 一般不修改原数组,返回新数组的方法有map,reduce,filter,slice

 

在JSX中可以使用数组循环返回组件或元素,类似于vue中的v-for

 每次使用map循环需要给每个元素添加key值,和vue类似,这可以提升性能

不写会出现警告

 key可以使用索引值填写,但对性能没有提升

操作对象和数组差不多

 

 如果属性值重复,会被覆盖