Angularjs mit Redux

7

Ich habe einige auf Redux gelesen. Das meiste, was ich lese, ist Redux mit Reagieren zu kombinieren. Ich benutze Angularjs. Gibt es einen guten Grund, Redux zu verwenden, um nur den Status innerhalb von angularjs zu verwalten und angular die Bindungen zu verwalten?

    
David Champion 20.01.2016, 15:01
quelle

2 Antworten

19

Redux hat Vorteile mit Angular 1.x, wenn Sie viele gemeinsame Status haben. In der Angular-App, an der ich arbeite, haben wir viele Seiten mit einem gemeinsamen Modell und mehreren Komponenten, die Änderungen an diesem Modell vornehmen (überlappen). Es ist nicht immer einfach, diese Daten synchron zu halten oder einen Standard für Änderungen zu haben. Redux ist eine gute Möglichkeit, dies zu tun, obwohl Sie mit Hilfe von Angular-Diensten sicherlich etwas Ähnliches implementieren könnten. Der einseitige Datenfluss, den Redux verwendet, ist (meiner Meinung nach) einfacher als das, was Sie normalerweise in Angular tun. Umgekehrt, die Einführung von Redux schadet wahrscheinlich Ihrer Fähigkeit, wirklich schnelle Prototypen zu schreiben, da es etwas mehr Arbeit gibt, um Daten weiterzugeben. Das ist mir egal, aber könnte für andere von Bedeutung sein.

Die wichtigsten Prinzipien von Redux gelten immer noch in angularen Apps:

  • Einzelne Quelle der Wahrheit (Einzelstatusobjekt). Wie ich oben gesagt habe, ist es einfacher, den Status zu verwalten, wenn er sich an einem einzigen Ort befindet oder in verschiedenen Bereichen oder Services von Angular verwaltet wird. Scope-Suppe ist ein echtes Problem in einigen Apps.
  • Staat ist unveränderlich. Dies ist der Punkt, an dem die Reibung mit Angular am größten ist, da Angular (und Javascript) Mutationsdaten sehr einfach machen. Aber es hilft Ihnen, sichereren Code zu schreiben. Da Sie ein unveränderliches Objekt nur durch Erstellen einer Kopie ändern können, können Sie sicherer sein, dass jede Datenmanipulation, die Sie in einer Direktive vornehmen, andere Direktiven nicht bricht. Umgekehrt können Sie erwarten, dass andere Richtlinien keine Änderungen an Ihren Daten vornehmen. Alle diese Modifikationen gehen durch eine zentrale Stelle (das einzelne Zustandsobjekt, über Reduzierungen), so dass es einfacher ist, sie zu finden.
  • Änderungen werden durch reine Funktionen vorgenommen. Ich denke, das ist in jeder JS-Anwendung nützlich. Je mehr Code Sie haben, der keine Nebeneffekte oder Framework-Abhängigkeiten aufweist, desto einfacher ist es, Ihre App zu verstehen und zu testen. Viele unserer Tests für eckigen Code haben eine Reihe von App Setup Boilerplate. Das Testen eines Reduzierers ist im Vergleich dazu unglaublich einfach, da es nur eine Javascript-Funktion ist.

Wenn Sie Redux verwenden, bedeutet dies, dass Ihr Code weniger eckig ist. Dies bedeutet, dass Sie einen einfacheren Upgrade-Pfad haben, wenn Sie sich entscheiden, Angular nicht zu verwenden. Oder auch wenn Sie nur nach Angular 2 migrieren möchten. Wie viel einfacher ist das allerdings schwer zu sagen.

Ich denke nicht, dass es eine Menge Überschneidungen gibt, da Angular mehr ein Framework als eine Bibliothek ist, aber es gibt Dinge in Redux, die Sie in Angular nicht so gut nutzen können. Sie wissen vielleicht genau, welcher Teil Ihres App-Status sich ändert, aber Angular wird seinen Digest-Zyklus ausführen und alles überprüfen. Angular 2 ist in dieser Hinsicht jedoch besser. Sie müssen durch einige Schleifen springen, um alle Ihre Anweisungen mit unveränderlichen Daten arbeiten zu lassen. Und vor allem, wenn Sie jedes Feld senden möchten, wechselt ein Benutzer durch den Redux-Speicher, da ng-model die übergebene Eigenschaft mutieren möchte.

Jede App ist anders, aber Redux macht Sinn in der Art von Angular-Apps, an denen ich gearbeitet habe.

    
JeffB 21.01.2016, 20:27
quelle
0

Redux kann mit jeder Javascript-Technologie verwendet werden. Zusammenfassend können Sie es in ein Agular-Projekt integrieren. Heutzutage verändert es die Art und Weise, wie Anwendungen gebaut werden. Es ermöglicht eine neue Art, Anwendungen mit einem unidirektionalen Datenfluss zu konzipieren. Dadurch erhalten Sie eine bessere Kontrolle über Ihren Anwendungsstatus und Tools, um Probleme im Zusammenhang mit der Datenmigration zu beseitigen. Werfen Sie einen Blick auf dieses großartige Tutorial zur Verwendung von Redux in Angular-Projekten .

>     
Regiane Folter 10.05.2017 15:13
quelle