この構造を使用している 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」です。)
たとえば、VuexCart.vue
のデータを更新したいとします。inCart
そのために、カートは以下をインポートしactions.js
ます。
import { inCart } from '../../store/actions'
APIに接続できるようにactions.js
、API をインポートします。index.js
そして、Vuex ストアの値を更新します。
わかりました、それは私には明らかです。Messages.vue
しかし今、私はモジュールに取り組みたいと思っています。このモジュールは、すべてのメッセージを取得するために API にも接続する必要がありますが、結果を Vuex に保存する必要はありません。データを必要とする唯一のコンポーネントは Messages.vue 自体であるため、コンポーネントdata()
のみに保存する必要があります。
質問:アクションは Vuex を更新しないため、actions.js
内部にインポートできません。Messages.vue
しかし、ストアにデータを追加するすべてのファイルを store-directory に配置するロジックが壊れるため、 をディレクトリにactions.js
移動することはできません。api
それに加えて、ロジックは 内に配置する必要がありますMessages.vue
。たとえば、API がエラーを返す場合、ローカルerror
定数を設定する必要があります。したがって、別のファイルで処理することはできません。
API 呼び出しを行い、それらを vuex または local に保存するための推奨されるアプリケーション構造は何data()
ですか? アクション ファイル、API ファイルなどを配置する場所は? Jackblog の例を見ると、Vuex データのみがサポートされています。両方をサポートするためにこれを再構築する方法は?