Eu não vi essa sintaxe antes e estou me perguntando do que se trata.
var { Navigation } = require('react-router');
Os colchetes à esquerda estão gerando um erro de sintaxe:
token inesperado {
Não tenho certeza de qual parte da configuração do webpack está se transformando ou qual é o propósito da sintaxe. É uma coisa do Harmony? Alguém pode me esclarecer?
javascript
webpack
ecmascript-6
capitão
fonte
fonte
webpack.config.js
você provavelmente temjsx-loader
com aharmony
bandeira ativadaRespostas:
É chamado de atribuição de desestruturação e faz parte do padrão ES2015 .
Desestruturação de objetos
Array desestruturando
fonte
var {newVarName: oldVarName} = varSource;
parece muito com{ newVarName: varSource.oldVarName }
ouscope.newVarName = varSource.oldVarName;
, mas esses estão, obviamente, errados. Existe uma razão prática para ter os nomes antigos / existentes à esquerda do:
?Esta é uma tarefa de desestruturação . É um novo recurso do ECMAScript 2015.
É o equivalente a:
fonte
... usa a desestruturação para conseguir o mesmo que ...
... mas é muito mais legível.
fonte
É um novo recurso do ES6 para desestruturar objetos.
Como todos sabemos que há uma operação de atribuição ocorrendo aqui, o que significa que o valor do lado direito está sendo atribuído à variável do lado esquerdo.
Neste caso, o
require('react-router')
método retorna um objeto com um par de valores-chave, algo como{ Navigation: function a(){}, Example1: function b(){}, Example2: function c(){} }
.E se quisermos pegar uma chave nesse objeto retornado, digamos
Navigation
para uma variável, podemos usar a destruição de objetos para isso.Isso só será possível se tivermos a chave em mãos.
Portanto, após a instrução de atribuição, a variável local
Navigation
conteráfunction a(){}
Outro exemplo se parece com este.
fonte