React useState 和 useReducer 的初始值如果是个执行函数返回值,执行函数是否会多次执行?

1 min read

是的,如果状态的初始值是一个函数,那么这个函数会在每次组件渲染时都被调用,并且返回新的值,因此可能会多次执行。

在大多数情况下,这不应该是问题,因为大多数初始值函数不会执行非常耗时的操作。如果您的初始值函数确实执行了昂贵的操作,则可以考虑使用懒初始化技术将状态的初始值推迟到第一次使用它时,以避免性能问题。