Se sei in una grande base di codici angolari 1 e non vuoi introdurre nuove dipendenze (come ngRedux), sarebbe una pessima idea iniziare a utilizzare le funzioni classiche di Angular 1, come $ rootScope, $ broadcast, $ on, $ guarda per implementare un'architettura simile a quella di Redux?
Il mio modo di vedere, potrebbe essere fatto come segue:
- per la memorizzazione/modello -> Usa
$rootScope
- Per
store.dispatch(ACTION)
-> Usa$rootScope.$broadcast(ACTION)
- Riduttori sarebbero implementate come servizi iniettando
$rootScope
e facendo$on(ACTION)
- I controllori potevano controllare le modifiche su
$rootScope
con$watch
e aggiornare la vista o le viste potrebbero vincolare direttamente al$rootScope
proprietà
Finché si sta disciplinato per non fare strane mutazioni out-of-luogo il $rootScope
proprietà, mantenere tutte logica dell'applicazione nei riduttori e mantenere il codice controller al minimo, il più grande svantaggio che può vedere con questo sta avendo prestazioni terribili a causa di costosi cicli digest di Angular 1. Ma se si può anche attenersi alle strutture di dati immutabili , potrebbe non essere nemmeno il caso.
Questa è una cattiva idea? Qualcuno ha provato questo?