Vue - DRY

Nindzia
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 255
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.

DE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1788
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:

Kopiuj
// @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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.