Ein deklarativer Stil, wie er reagiert, ermöglicht es Ihnen, den Ablauf und den Status in Ihrer Anwendung zu steuern, indem Sie sagen: "Es sollte so aussehen". Ein zwingender Stil dreht das um und ermöglicht es Ihnen, Ihre Anwendung zu steuern, indem Sie sagen: "Dies ist, was Sie tun sollten".
Der Vorteil von deklarativ ist, dass Sie sich nicht in den Implementierungsdetails der Darstellung des Staates festsetzen. Sie delegieren die organisatorische Komponente, um Ihre Anwendungsansichten konsistent zu halten, sodass Sie sich nur um den Status kümmern müssen.
Stellen Sie sich vor, Sie haben einen Butler, der eine Art Metapher für ein Framework ist. Und Sie möchten Abendessen machen. In einer imperativen Welt würden Sie ihnen Schritt für Schritt sagen, wie man ein Abendessen macht. Sie müssen folgende Anweisungen geben:
Go to the kitchen
Open fridge
Remove chicken from fridge
...
Bring food to the table
In einer deklarativen Welt würden Sie einfach beschreiben, was Sie wollen
I want dinner with chicken.
Wenn Ihr Butler nicht weiß, wie man Hühnchen macht, können Sie nicht deklarativ arbeiten. Genau wie wenn Backbone nicht weiß, wie es sich selbst mutieren soll, um eine bestimmte Aufgabe zu erledigen, können Sie es nicht einfach anweisen, diese Aufgabe zu erledigen. React kann deklarativ sein, weil es zum Beispiel "weiß, wie man Hühnchen macht". Im Vergleich zu Backbone, das nur weiß, wie man sich mit der Küche verbindet.
In der Lage zu sein, den Zustand zu beschreiben, reduziert die Oberfläche für Fehler dramatisch, was ein Vorteil ist. Auf der anderen Seite haben Sie möglicherweise weniger Flexibilität bei der Vorgehensweise , da Sie die Implementierung des Status delegieren oder abstrahieren.
Imperative programming: telling the "machine" how to do something, and as a result what you want to happen will happen. Declarative programming: telling the "machine"1 what you would like to happen, and let the computer figure out how to do it.