Vue - DRY

0

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.

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1