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