Есть хранилище данных Vuex, в котором у меня есть action, делающий запрос к стороннему апи, возвращающий данные и запускающий callback-функцию, но мне кажется весь это action довольно громоздким (весь код взят с сайта разработчика api) и крайне неудобным в плане логики конкретного модуля хранилища (этот метод как не в своей тарелке). Так как этот метод (action) нужно будет использовать в нескольких компонентах, с разными входными параметрами, я решил вынести его в отдельный модуль и использовать его уже так:
import exampleapi from 'example-api';
, чтобы потом уже работать с ним примерно так:
exampleapi.query('{}',function(data){
//some actions
})
Нашел примеры, как пишутся модули, наткнулся на это:
// lib/counter.js
var counter = 1;
function increment() {
counter++;
}
function decrement() {
counter--;
}
module.exports = {
counter: counter,
increment: increment,
decrement: decrement
};
// src/main.js
var counter = require('../../lib/counter');
counter.increment();
console.log(counter.counter); // 1
В таком же виде, собственно, я описываю свои модули VUEX-хранилища. Структура там такая:
-store
|--modules
|----invites.js
|----user.js
|--index.js
Насколько верным будет добавить именно сюда новый модуль, в котором будут описаны методы для работы с апи, а не с хранилищем? Мне кажется что такой подход не верный, ибо в папке store хранятся только модули для работы с хранилищем. Тогда где можно хранить свои самописные модули? В правильно ли направлении я двигаюсь?