Nie widziałem wcześniej tej składni i zastanawiam się, o co w tym wszystkim chodzi.
var { Navigation } = require('react-router');
Nawiasy po lewej stronie generują błąd składniowy:
nieoczekiwany znak {
Nie jestem pewien, która część konfiguracji pakietu internetowego jest przekształcana ani jaki jest cel składni. Czy to kwestia Harmonii? Czy ktoś może mnie oświecić?
javascript
webpack
ecmascript-6
kapitan
źródło
źródło
webpack.config.js
prawdopodobnie maszjsx-loader
zharmony
flagą włączonaOdpowiedzi:
Nazywa się to przydziałem destrukcji i jest częścią standardu ES2015 .
Destrukcja obiektów
Destrukturyzacja macierzy
źródło
var {newVarName: oldVarName} = varSource;
wygląda bardzo podobnie do{ newVarName: varSource.oldVarName }
lubscope.newVarName = varSource.oldVarName;
, ale te są oczywiście błędne. Czy istnieje praktyczny powód, dla którego stare / istniejące nazwy znajdują się po lewej stronie:
?To jest destrukcyjne zadanie . To nowa funkcja ECMAScript 2015.
Jest odpowiednikiem:
źródło
... wykorzystuje destrukturyzację, aby osiągnąć to samo, co ...
... ale jest znacznie bardziej czytelny.
źródło
To nowa funkcja w ES6 do niszczenia obiektów.
Jak wszyscy wiemy, odbywa się tutaj operacja przypisania, co oznacza, że wartość po prawej stronie jest przypisywana zmiennej po lewej stronie.
W tym przypadku
require('react-router')
metoda zwraca obiekt z parą klucz-wartość{ Navigation: function a(){}, Example1: function b(){}, Example2: function c(){} }
.A jeśli chcielibyśmy wziąć jeden klucz w tym zwróconym obiekcie, powiedz
Navigation
do zmiennej, możemy użyć do tego niszczenia obiektów .Będzie to możliwe tylko wtedy, gdy będziemy mieć klucz w środku.
Tak więc po instrukcji przypisania zmienna lokalna
Navigation
będzie zawieraćfunction a(){}
Inny przykład wygląda tak.
źródło