Je n'ai jamais vu cette syntaxe auparavant et je me demande de quoi il s'agit.
var { Navigation } = require('react-router');
Les crochets sur la gauche lancent une erreur de syntaxe:
jeton inattendu {
Je ne sais pas quelle partie de la configuration du Webpack est en train de transformer ou quel est le but de la syntaxe. Est-ce un truc Harmony? Quelqu'un peut-il m'éclairer?
javascript
webpack
ecmascript-6
capitaine
la source
la source
webpack.config.js
vous avez probablementjsx-loader
avec leharmony
drapeau activéRéponses:
C'est ce qu'on appelle l' affectation de déstructuration et cela fait partie de la norme ES2015 .
Déstructuration d'objets
Déstructuration du tableau
la source
var {newVarName: oldVarName} = varSource;
ressemble beaucoup à{ newVarName: varSource.oldVarName }
ouscope.newVarName = varSource.oldVarName;
, mais ceux-ci sont évidemment faux. Y a-t-il une raison pratique pour avoir les noms anciens / existants à gauche du:
?C'est une mission de déstructuration . C'est une nouvelle fonctionnalité d'ECMAScript 2015.
Est l'équivalent de:
la source
... utilise la déstructuration pour réaliser la même chose que ...
... mais est beaucoup plus lisible.
la source
C'est une nouvelle fonctionnalité d'ES6 pour déstructurer les objets.
Comme nous le savons tous, une opération d'affectation est en cours ici, ce qui signifie que la valeur du côté droit est affectée à la variable du côté gauche.
Dans ce cas, la
require('react-router')
méthode retourne un objet avec une paire clé-valeur quelque chose comme{ Navigation: function a(){}, Example1: function b(){}, Example2: function c(){} }
.Et si nous voulons prendre une clé dans cet objet retourné, disons
Navigation
à une variable, nous pouvons utiliser la destruction d'objets pour cela.Cela ne sera possible que si nous avons la clé en main.
Ainsi, après l'instruction d'affectation, la variable locale
Navigation
contiendrafunction a(){}
Un autre exemple ressemble à ceci.
la source