Buduję aplikację z jedną stroną z Vue.js. Jest to stosunkowo prosta aplikacja, bardziej przypominająca rozbudowany, uznany arkusz kalkulacyjny. Używam vue-router
do obsługi różnych widoków aplikacji, niektóre służą do wprowadzania nowych danych, inne służą do wykonywania obliczeń danych, ale wszystkie dane są ze sobą powiązane (dane wprowadzone w widoku nr 1 służą do wprowadzania danych w widoku # 2, a następnie oba są używane do obliczenia czegoś w widoku # 3).Jedna globalna struktura danych w Vue.js
To oznacza, że potrzebuję globalnej struktury danych. Z moich badań wynika, że mam kilka opcji, aby obsłużyć to:
- "prawidłowy" sposób: emitowanie zdarzeń w komponentach i posługiwanie się nimi w rodzicu; który wydaje się nieco nadmiernie skomplikowane dla co chcę osiągnąć
- dostępu zakresu nadrzędnego bezpośrednio w szablonach składowych poprzez
$parent.$data
- mojego obecnego rozwiązania, przypisanie danych referencyjnych rodzic do dziecka danych Object
tak:
const REPORTS = {
template: templates.reports,
data: function(){
return this.$parent.$data
}
};
Jednak mój szósty zmysł mówi mi, że to nie jest dobra praktyka.
Jeśli mam rację, jakie są lepsze sposoby osiągnięcia tego: jedna, globalna struktura danych, dostępna ze wszystkich składników?
Dziękuję, właśnie tego szukałem. Z ciekawości, jak źle przekazuje rodzicowi dane odniesienia do dzieci? – angr
@angr Nie najgorsze, jeśli komunikacja jest ograniczona do rodzica, zawsze można przejść do komunikacji z rodzicem dziecka, jak opisano [tutaj] (http://stackoverflow.com/a/40915910/1610034), ale jeśli trzeba komunikować się między wieloma komponentami, które później mogą stać się bałaganem niż używać vuex. – Saurabh