相关疑难解决方法(0)

与基于类的方法相比,使用Hooks设置状态后重新渲染时有什么区别?

类组件

在React类组件中,告诉我们setState 总是导致重新渲染,无论状态是否实际更改为新值。实际上,组件重新呈现,当状态更新为同一值以前。

Docs(setState API参考)

除非shouldComponentUpdate()返回false,否则setState()将始终导致重新渲染。


挂钩(功能组件)

但是,使用钩子时,文档将更新状态指定为与先前状态相同的值,不会导致(子组件)重新呈现:

Docs(useState API参考)

摆脱状态更新

如果您将State Hook更新为与当前状态相同的值,React将在不渲染子级或激发效果的情况下纾困。(React使用Object.is比较算法。)


密切相关的问题

  1. this.setState即使新state值与之前的值相同,类中的组件始终会导致重新渲染是否正确?
  2. 在带有钩子的功能组件中,如果值与先前的值不同,setStatefrom useState仅会导致重新渲染是否正确state
  3. 类组件的方法内部进行设置是否statethis.setState带有钩子函数组件的函数内部进行设置相同?renderstate
  4. 以下正确吗?
    • 类组件中,如果我们staterender方法中进行设置,则会发生无限循环。这是因为类组件不在乎新state的与先前的相同state。它只是在每个上不断重新渲染this.setState
    • 但是,在带有钩子函数组件中,state在函数体内进行设置(render类组件中的方法类似,在重新渲染时运行)将不是问题,因为当看到该组件时 …

javascript reactjs react-hooks

13
推荐指数
1
解决办法
6408
查看次数

标签 统计

javascript ×1

react-hooks ×1

reactjs ×1