Je n'ai jamais vu cette syntaxe auparavant et je me demande de quoi il s'agit.
var { Navigation } = require('react-router');
Les crochets à gauche génèrent 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 une chose Harmony? Quelqu'un peut-il m'éclairer?
Cela s'appelle affectation de déstructuration et cela fait partie de la norme ES2015 .
La syntaxe d'affectation destructurante est une expression JavaScript qui permet d'extraire des données de tableaux ou d'objets à l'aide d'une syntaxe qui reflète la construction des tableaux et des littéraux d'objet.
var o = {p: 42, q: true};
var {p, q} = o;
console.log(p); // 42
console.log(q); // true
// Assign new variable names
var {p: foo, q: bar} = o;
console.log(foo); // 42
console.log(bar); // true
var foo = ["one", "two", "three"];
// without destructuring
var one = foo[0];
var two = foo[1];
var three = foo[2];
// with destructuring
var [one, two, three] = foo;
C'est affectation de déstructuration . C'est une nouvelle fonctionnalité d'ECMAScript 2015.
var {
AppRegistry,
StyleSheet,
Text,
View,
} = React;
Est l'équivalent de:
var AppRegistry = React.AppRegistry;
var StyleSheet = React.StyleSheet;
var Text = React.Text;
var View = React.View;
var { Navigation } = require('react-router');
... utilise la déstructuration pour obtenir la même chose que ...
var Navigation = require('react-router').Navigation;
... mais est beaucoup plus lisible.
C'est une nouvelle fonctionnalité dans ES6 pour détruire des objets.
Comme nous savons tous qu'une opération d'affectation a lieu ici, ce qui signifie que la valeur du côté droit est affectée à la variable du côté gauche.
var { Navigation } = require('react-router');
Dans ce cas, la méthode require('react-router')
renvoie un objet avec une paire valeur/clé 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 que nous pouvons utiliser Destruction d'objet 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
contiendra function a(){}
Un autre exemple ressemble à ceci.
var { p, q } = { p: 1, q:2, r:3, s:4 };
console.log(p) //1;
console.log(q) //2;