一、说一下React Hooks在平时开发中需要注意的问题和原因?
- 只在 React 函数中调用 Hook;
- 不要在循环、条件或嵌套函数中调用 Hook。
二、React 的 setState 方法是异步还是同步?
同步;在 React 中为了防止多次setState
导致多次渲染带来不必要的性能开销,会将待更新的state
放到队列中,等到合适的时机(生命周期钩子和事件)后进行batchUpdate
,所以在setState
后无法立即拿到更新后的state
。setState
表现貌似是异步,但是里面没有用异步代码实现。而且不是等主线程代码执行结束后才执行的,而是需要手动触发。如果是给setState
传入一个函数,这个函数是执行前一个setState
后才被调用的,所以函数返回的参数可以拿到更新后的state
。