首页 > 解决方案 > 全局状态在纯反应状态托管应用程序中的性能影响

问题描述

我正在使用 React Hooks 进行状态管理,快速概览:

我正在使用useContext钩子将应用程序状态分配给内部组件。这些上下文提供了一个对象,例如:{ state, dispatch }useReducer钩子返回。

const [ state, dispatch ] = useReducer({...}, initialState);
return (
  <MyContext.Provider value={{state, dispatch}}>
     {children}
  </MyContext.Provider>
);

然后内部组件可以访问状态:

<MyContext>
  <SomeComponent/>
</MyContext>

随着应用程序的增长,将会有多个像这样的上下文,所以我很想创建另一个名为Store的组件,并将所有上下文放在那里,包装我的应用程序:

商店.jsx:

export const Store = ({children}) => (
<SomeContext>
  <AnotherContext>
    {children}
  </AnotherContext>
</SomeContext>
)

应用·jsx:

<Store>
  <App/>
</Store>

现在,实际的问题是:这种方法会导致不必要的重新渲染吗?从长远来看,它会对性能产生什么影响?

标签: javascriptreactjsreact-hooks

解决方案


推荐阅读