Verwenden Sie Object.assign oder Spread Operator in React / Redux? Was ist eine bessere Praxis?

8

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:

  1. Ist es die richtige Entscheidung, mit Object.assign ?
  2. fortzufahren?
  3. Was ist die Alternative?

Mein Code

%Vor%

Was ist die Alternative für den obigen Code?

    
Gopinath 12.04.2017, 18:18
quelle

4 Antworten

13

Redux-Dokumente empfehlen Ihnen, den Spread-Operator-Ansatz anstelle von Object.assign

zu verwenden

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 Redux-Dokumenten / p>

Wenn Sie jedoch mit den verschachtelten Daten zu tun haben. Ich bevorzuge immutability-helpers

Für Ihren Code wird es wie

sein %Vor%     
Shubham Khatri 12.04.2017, 18:25
quelle
1

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%     
Patrick Hund 12.04.2017 18:30
quelle
1

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.

    
Son Dang 02.05.2017 12:32
quelle
0

Object Spread ist ES7-Syntax, Render wird von Babel unterstützt, Object.assign () ist ES6-Syntax, wird in einigen Browsern nicht unterstützt. Deshalb sollten Sie anstelle von Object.assign ()

die Objektverteilung verwenden     
Son Dang 29.04.2017 02:50
quelle

Tags und Links