Ich habe etwas Verwirrung über die Verwendung von Object.assign
für React und Redux.
Ich lese diesen Artikel .
Es sagt ES6 wird nicht von allen Browsern unterstützt, aber ich habe angefangen, es zu benutzen.
Ich habe zwei Fragen:
Object.assign
? Mein Code
%Vor%Was ist die Alternative für den obigen Code?
Redux-Dokumente empfehlen Ihnen, den Spread-Operator-Ansatz anstelle von Object.assign
Wie in der Dokumentation:
Ein alternativer Ansatz besteht darin, die vorgeschlagene Objektverbreitungssyntax zu verwenden für die nächsten Versionen von JavaScript, mit denen Sie den Spread verwenden können (...) Operator, um aufzählbare Eigenschaften von einem Objekt nach zu kopieren ein anderer in einer prägnanteren Art und Weise. Der Objektspreizungsoperator ist konzeptionell ähnlich dem ES6 Array Spread Operator
Der Vorteil der Verwendung der Objektspreizungssyntax wird beim Erstellen komplexer Objekte offensichtlich.
Verwenden der Spread-Operator-Syntax
%Vor% Es verwendet immer noch ES6. Weitere Informationen zum Konfigurieren Ihres Codes für dasselbe Wenn Sie jedoch mit den verschachtelten Daten zu tun haben. Ich bevorzuge Für Ihren Code wird es wie immutability-helpers
Die Alternative zu dem von Ihnen geposteten Code ist die Verwendung der Objektverbreitung:
%Vor%Ich habe auch den Rumpf der Pfeilfunktion in Ihrem Code verkürzt, um das Objekt einfach zurückzugeben.
Sie können die Objektspreizungssyntax verwenden, indem Sie das Babel-Plug-In transform-object-rest-spread verwenden .
Installieren Sie es wie folgt:
%Vor%Konfigurieren Sie die Verwendung in .babelrc wie folgt:
%Vor%Ok, vielleicht war ich nicht wirklich richtig, aber das ist von Dan Abramov (redux creator)
Schließlich müssen Sie daran denken, dass Object.assign eine neue Methode ist ES6, daher ist es nicht nativ in allen Browsern verfügbar. Du solltest Verwenden Sie ein Polyfill, entweder das mit Babel oder einem Standalone Object.ass Polyfill zuweisen, um es zu verwenden, ohne zu riskieren, Ihren Website.
Eine weitere Option, die kein Polyfill benötigt, ist die Verwendung des neuen Objektspreizoperator, der nicht Teil von ES6 ist. Wie auch immer es ist vorgeschlagen für ES7. Es ist ziemlich populär, und es ist in Babel wenn möglich aktiviert Sie verwenden die Voreinstellung für Stufe 2.
Tags und Links javascript reactjs redux