我目前正在开发一个新的Vue.js应用程序 . 它在很大程度上取决于对我的后端数据库的api调用 .
对于很多事情,我使用Vuex商店,因为它管理我的组件之间的共享数据 . 在github上查看其他Vue项目时,我看到一个特殊的vuex目录,其中包含处理所有操作,状态等的文件 . 因此,当组件必须调用API时,它包含来自vuex目录的actions文件 .
但是,对于消息,例如,我不想使用Vuex,因为这些数据仅对一个特定视图很重要 . 我想在这里使用组件特定数据 . 但这是我的问题:我仍然需要查询我的api . 但我不应该包含Vuex动作文件 . 因此,我应该创建一个新的动作文件 . 这样我就有一个特定的文件,其中包含针对vuex和单个组件的api操作 .
我应该如何构建这个?创建一个新目录'api'来处理vuex数据和特定于组件的数据的操作?还是把它分开?
3 回答
我使用axios作为HTTP客户端进行api调用,我在
src
文件夹中创建了一个gateways
文件夹,我为每个后端创建了文件,创建了axios instances,如下所示myApi.js
现在在您的组件中,您可以拥有一个从api获取数据的函数,如下所示:
同样,您也可以使用它来获取vuex商店的数据 .
已编辑
如果要在专用vuex module中维护产品相关数据,则可以从组件中的方法调度操作,该方法将在内部调用后端API并在存储中填充数据,代码如下所示:
组件代码:
vuex商店中的代码:
我主要使用Vue Resource . 我创建
services
目录,并将所有连接都放到 endpoints 上,例如PostService.js然后在我的文件中我导入该服务并创建从服务文件调用方法的方法
SomeView.vue
根据Belmin Bedak的回答概念,我把它全部包装成一个简单的库:
https://github.com/robsontenorio/vue-api-query
您可以像这样请求您的API:
所有结果
具体结果
编辑
关系