您如何构建可重用的VUEX Rest存储?
我需要构建一个可重用的VUEX Rest存储,尤其是这部分:操作 目前,我有以下专门用于任务的代码:您如何构建可重用的VUEX Rest存储?,rest,vue.js,vuex,crud,Rest,Vue.js,Vuex,Crud,我需要构建一个可重用的VUEX Rest存储,尤其是这部分:操作 目前,我有以下专门用于任务的代码: const actions = { async fetchTasks({ commit }) { const response = await axios.get(resource_uri); commit('setTasks', response.data); }, async addTask({ commit }, task) {
const actions = {
async fetchTasks({ commit }) {
const response = await axios.get(resource_uri);
commit('setTasks', response.data);
},
async addTask({ commit }, task) {
const response = await axios.post(resource_uri, task);
commit('newTask', response.data);
},
async updateTask({ commit }, task) {
const response = await axios.put(`${resource_uri}${task.id}`, task);
commit('updTask', response.data);
},
async removeTask({ commit }, task) {
const response = await axios.delete(`${resource_uri}${task.id}`);
commit('deleteTask', task);
}
};
您如何将此通用性转换为允许我将REST用于以下模型:用户、任务、团队、消息、聊天。。等等我只想保留4个函数。您将如何构建VUEX商店的其余部分
也许你已经准备好了代码
编辑
嘿,我刚刚构建了这个,还没有测试:你觉得dis怎么样?像AngularJs这样的服务,我现在正在测试它genericaxioservices.js:
// GENERIC REST AXIOS SERVICE
import Axios from 'axios';
export default {
getAll(collection) {
return Axios.get(collection);
},
get(collection, id) {
return Axios.get(collection + "/" + id);
},
create(collection, data) {
return Axios.post(collection, data);
},
update(collection, id, data) {
return Axios.put(collection + "/" + id, data);
},
delete(collection, id) {
return Axios.delete(collection + "/" + id);
}
};
我个人认为,尝试使用两行函数泛型是没有用的——Typescript和Axios非常简洁,每个“实体”可以节省5-10行代码,但由于代码(和调试!)将变得更加复杂,因此几乎什么也得不到。