Какой наилучший способ хранить store в FSD + NEXT?

Где хранить store в Next + FSD? Я создал директорию app/store в папке pages, но получаю ошибку. Каково правильное расположение для store в Next? Я пытался избавиться от директории app, где еще можно разместить store? Пока что я просто вынес его в папку src, но я понимаю, что это не правильно. Какие есть альтернативные варианты для его расположения?
  • 18 сентября 2023 г. 7:57
Ответы на вопрос 6
Расположение хранилища (store) в Next.js + Redux (или другой библиотеке для управления состоянием) зависит от ваших предпочтений и требований проекта. Обычно рекомендуется хранить хранилище в отдельной папке с общими компонентами или в корневой папке проекта. 

Если вы используете Redux, вы можете создать папку "store" в корневой папке проекта и разместить файлы внутри нее. Например, вы можете создать файл "index.js" для создания Redux-хранилища и файл "reducers.js" для ваших редьюсеров.

Примерное расположение файлов может быть таким:

```
- src
  - components
    - ...
  - pages
    - ...
  - store
    - index.js
    - reducers.js
  - ...
```

В "index.js" вы можете создать хранилище и экспортировать его:

```javascript
import { createStore } from 'redux';
import reducers from './reducers';

const store = createStore(reducers);

export default store;
```

Затем вы можете подключить хранилище к вашему приложению Next.js в файле "pages/_app.js" (или в другом компоненте на высоком уровне):

```javascript
import { Provider } from 'react-redux';
import store from '../store';

function MyApp({ Component, pageProps }) {
  return (
    <Provider store={store}>
      <Component {...pageProps} />
    </Provider>
  );
}

export default MyApp;
```

Теперь ваше хранилище будет доступно во всех компонентах приложения.

Также можно использовать другие подходы, например, вынести хранилище в отдельный модуль и импортировать его там, где это необходимо, или разделить редьюсеры и экшены по соответствующим папкам. Здесь важно выбрать подход, который лучше всего соответствует вашим потребностям и способам организации кода в проекте.
Малые и средние проекты: храните хранилище в src/store или lib/store. 
 Крупные и модульные проекты: храните хранилище в каждом модуле. 
 Проекты с множеством разработчиков: выберите структуру, которая упрощает сотрудничество и минимизирует конфликты слияния. 
 Использование контекстов: храните контексты в отдельной директории рядом с соответствующими функциональными блоками. 
 Приложения с настройками: храните хранилище в src/configs или аналогичной директории.
Похожие вопросы