Ich habe diese Syntax noch nie gesehen und frage mich, worum es geht.
var { Navigation } = require('react-router');
Die Klammern links geben einen Syntaxfehler aus:
unerwartetes Token {
Ich bin nicht sicher, welcher Teil der Webpack-Konfiguration transformiert wird oder welchen Zweck die Syntax hat. Ist es eine Harmonie-Sache? Kann mich jemand aufklären?
javascript
webpack
ecmascript-6
Captainill
quelle
quelle
webpack.config.js
Sie wahrscheinlichjsx-loader
mitharmony
aktivierter FlaggeAntworten:
Es heißt Destructuring Assignment und ist Teil des ES2015-Standards .
Objektzerstörung
Array-Destrukturierung
quelle
var {newVarName: oldVarName} = varSource;
sieht sehr nach{ newVarName: varSource.oldVarName }
oder ausscope.newVarName = varSource.oldVarName;
, aber diese sind offensichtlich falsch. Gibt es einen praktischen Grund dafür, dass die alten / vorhandenen Namen links von der stehen:
?Dies ist eine Destrukturierungsaufgabe . Es ist eine neue Funktion von ECMAScript 2015.
Entspricht:
quelle
... nutzt Destrukturierung, um das Gleiche zu erreichen wie ...
... ist aber weitaus lesbarer.
quelle
Es ist eine neue Funktion in ES6, um Objekte zu zerstören.
Wie wir alle wissen, findet hier eine Zuweisungsoperation statt, was bedeutet, dass der Wert auf der rechten Seite der Variablen auf der linken Seite zugewiesen wird.
In diesem Fall gibt die
require('react-router')
Methode ein Objekt mit einem Schlüsselwertpaar zurück{ Navigation: function a(){}, Example1: function b(){}, Example2: function c(){} }
.Und wenn wir möchten , einen Schlüssel in diesem zurückgegebene Objekt sagen nehmen ,
Navigation
um eine Variable , die wir verwenden können , Object destructing dafür.Dies ist nur möglich, wenn wir den Schlüssel in der Hand haben.
Nach der Zuweisungsanweisung
Navigation
enthält die lokale Variablefunction a(){}
Ein anderes Beispiel sieht so aus.
quelle