🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
有点区别的,主要是class 里面的setstate是有一个合并的merge操作,hooks是利用闭包,直接进行值的替换, 所以在用hooks,尽量多用useReducer,一次性改变数据,毕竟多次setstate触发多次渲染,影响性能 #### 与在类中使用`setState`的异同点: * 相同点:也是异步的,例如在`onClick`事件中,调用两次`setState`,数据只改变一次。 * 不同点:类中的`setState`是合并,而函数组件中的`setState`是替换。 * 当`state`状态值结构比较复杂时,使用`useReducer`更有优势。 * **使用`useState`获取的`setState`方法更新数据时是异步的;而使用`useReducer`获取的`dispatch`方法更新数据是同步的。**