小编Que*_*est的帖子

反应 useContext() 性能,自定义钩子内的 useContext

我使用了一个使用React Hooks的结构。它基于包含减速器组合的全局上下文(如在 Redux 中)。此外,我广泛使用自定义钩子来分离逻辑。我有一个包含异步 API 请求的钩子,它变得非常麻烦,我有机会将这个钩子的几乎每个函数拆分成其他钩子,但是这些函数中的每一个都使用全局上下文(更准确地说 - 从 useReducer() 调度) )。

所以,问题:

  1. 可以在每个需要它的钩子中使用 useContext() 吗?
  2. 例如,如果我创建 10 个在内部使用 useContext() 并在组件中使用它们的自定义钩子,它将如何影响性能。

例子:

供应商/Store.js

import React, { createContext, useReducer } from 'react';

export const StoreContext = createContext();

export const StoreProvider = ({ children }) => {
  /**
   * Store that contains combined reducers.
   */
  const store = useReducer(rootReducer, initialState);

  return (
    <StoreContext.Provider value={store}>{children}</StoreContext.Provider>
  );
};
Run Code Online (Sandbox Code Playgroud)

钩子/useStore.js

import { useContext } from 'react';
import { StoreContext } …
Run Code Online (Sandbox Code Playgroud)

javascript rendering reactjs react-context react-hooks

5
推荐指数
1
解决办法
3934
查看次数