Cześć, w projekcie Vue, który piszę często wykorzystuję w różnych te same zapytania do api, lecz z różnymi ID, nie chcę powtarzać się i pisać tych samych funkcji po raz kolejny. Jak dobrze ustrukturyzować projekt, by zapytania były w jednym miejscu i nie musiał ich powtarzać. Vuex raczej odpada, bo nie do końca służy do tego.
0
1
U nas to wygląda tak, że mamy katalog clients
, a w nim pliki takie jak: BookingsClient.js
, OpinionsClient.js
itp. Zazwyczaj tworzymy klienta per jakiś tam kontekst, żeby nie było jednego pliku na 2 mln linii. Każdy klient wygląda mniej więcej tak:
// @flow
import request from '...';
export default class AvailabilityClient {
static fetchAvailability(filters: ?filtersBucket): Promise<any> {
return request({
url: `/api/v3/availability`,
method: 'get',
params: {
filters: filters || {},
},
});
}
}
Później przechodzi to jeszcze przez normalizr i trafia do vuexa. Projekt jest całkiem spory i na ten moment działa to bardzo fajnie.