我看到很多 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
导入 api以便它index.js
可以连接到 api。然后它会更新 Vuex 存储中的值。
好的,这对我来说很清楚。但现在,我想在Messages.vue
模块上工作。该模块也应该连接到 api 以获取所有消息,但不必将结果存储在 Vuex 中。唯一需要数据的组件是 Messages.vue 本身,因此它应该只存储在组件中data()
。
问题:我无法actions.js
在里面导入,Messages.vue
因为该操作不应该更新 Vuex。但我无法将 移动actions.js
到api
目录,因为这破坏了将所有向商店添加数据的文件放在商店目录中的逻辑。除此之外,逻辑应该放在里面Messages.vue
。例如,当 api 返回错误时,error
应设置本地 -constant。所以它不能由单独的文件处理。
进行 api 调用并将它们存储在 vuex 或 local 中的推荐应用程序结构是什么data()
?将操作文件、api 文件等放在哪里?查看 Jackblog 示例时,它仅支持 Vuex 数据。如何重组它以支持两者?