Структурирование Vue с использованием данных Vuex и компонентов

Я вижу много проектов Vue.js, использующих эту структуру:

├── main.js
├── api
│   └── index.js
│   └── services           #containing files with api-calls
│       ├── global.js
│       ├── cart.js
│       └── messages.js
├── components
│   ├── Home.vue
│   ├── Cart.vue
│   ├── Messages.vue
│   └── ...
└── store
    ├── store.js
    ├── actions.js  #actions to update vuex stores
    ├── types.js
    └── modules
        ├── global.js
        ├── cart.js
        └── ...

(Пример с такой структуройJackblog».)

Так, например,Cart.vue хочет обновитьinCart данные в Vuex. Для этого Корзина импортируетactions.js:

import { inCart } from '../../store/actions'

actions.js импортирует APIindex.js поэтому он может подключиться к API. А затем он обновляет значения в магазине Vuex.

Итак, это для меня ясно. Но теперь я хочу работать надMessages.vue модуль. Этот модуль должен также подключаться к API, чтобы получать все сообщения, но нет необходимости сохранять результаты в Vuex. Единственный компонент, которому нужны данные, - это само Messages.vue, поэтому они должны храниться в компоненте.data() только.

Вопрос: Я не могу импортироватьactions.js внутриMessages.vue потому что действие не должно обновлять Vuex. Но я не могу пошевелитьactions.js кapi каталог, потому что это нарушает логику помещения всех файлов, которые добавляют данные, в хранилище в каталог-хранилище. Кроме того, логика должна быть размещена внутриMessages.vue, Например, когда API возвращает ошибку, локальныйerror-константа должна быть установлена. Поэтому он не может быть обработан отдельным файлом.

Какова рекомендуемая структура приложения для выполнения вызовов API и сохранения их в Vuex или локальномdata()? Где разместить файл действий, файлы API и так далее? При рассмотрении примера Jackblog он поддерживает только данные Vuex. Как реструктурировать это, чтобы поддержать оба?

Ответы на вопрос(2)

Ваш ответ на вопрос