您如何构建可重用的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) {

我需要构建一个可重用的VUEX Rest存储,尤其是这部分:操作

目前,我有以下专门用于任务的代码:

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行代码,但由于代码(和调试!)将变得更加复杂,因此几乎什么也得不到。