Fornirò un argomento a favore delle azioni "stupide".
Assegnando la responsabilità della raccolta dei dati delle viste nelle tue azioni, abbini le tue azioni ai requisiti dei dati delle tue viste.
Al contrario, le azioni generiche, che descrivono in modo dichiarativo l' intento dell'utente o una transizione di stato nell'applicazione, consentono a qualsiasi Store che risponde a tale azione di trasformare l'intento in uno stato su misura per le visualizzazioni sottoscritte.
Questo si presta a negozi più numerosi, ma più piccoli e specializzati. Sostengo questo stile perché
- questo ti offre una maggiore flessibilità nel modo in cui le visualizzazioni consumano i dati dello Store
- I negozi "intelligenti", specializzati per le visualizzazioni che li consumano, saranno più piccoli e meno accoppiati per le app complesse, rispetto alle azioni "intelligenti", da cui dipendono potenzialmente molte visualizzazioni
Lo scopo di un negozio è fornire dati alle visualizzazioni. Il nome "Azione" mi suggerisce che il suo scopo è descrivere un cambiamento nella mia applicazione.
Supponiamo di dover aggiungere un widget a una visualizzazione Dashboard esistente, che mostra alcuni nuovi fantasiosi dati aggregati che il tuo team di backend ha appena implementato.
Con le azioni "intelligenti", potrebbe essere necessario modificare l'azione "aggiorna dashboard" per utilizzare la nuova API. Tuttavia, "Aggiornare il dashboard" in senso astratto non è cambiato. I requisiti in materia di dati delle tue opinioni sono ciò che è cambiato.
Con le azioni "stupide", potresti aggiungere un nuovo Store per il nuovo widget da consumare e configurarlo in modo che quando riceve il tipo di azione "aggiornamento dashboard", invii una richiesta per i nuovi dati e lo esponga a il nuovo widget una volta pronto. Per me ha senso che quando il livello di visualizzazione necessita di più o diversi dati, le cose che modifico sono le fonti di quei dati: Archivi.