No he visto esta sintaxis antes y me pregunto de qué se trata.
var { Navigation } = require('react-router');
Los corchetes de la izquierda arrojan un error de sintaxis:
símbolo inesperado {
No estoy seguro de qué parte de la configuración del paquete web se está transformando o cuál es el propósito de la sintaxis. ¿Es una cosa de la armonía? ¿Alguien puede iluminarme?
javascript
webpack
ecmascript-6
captainill
fuente
fuente
webpack.config.js
probablemente tengajsx-loader
con laharmony
bandera habilitadaRespuestas:
Se llama asignación de desestructuración y es parte del estándar ES2015 .
Desestructuración de objetos
Desestructuración de matrices
fuente
var {newVarName: oldVarName} = varSource;
parece mucho a{ newVarName: varSource.oldVarName }
oscope.newVarName = varSource.oldVarName;
, pero obviamente están mal. ¿Existe una razón práctica para tener los nombres antiguos / existentes a la izquierda del:
?Esta es una tarea desestructuradora . Es una nueva característica de ECMAScript 2015.
Es el equivalente a:
fuente
... usa la desestructuración para lograr lo mismo que ...
... pero es mucho más legible.
fuente
Es una nueva característica de ES6 para desestructurar objetos.
Como todos sabemos, aquí se está llevando a cabo una operación de asignación, lo que significa que el valor del lado derecho se asigna a la variable del lado izquierdo.
En este caso, el
require('react-router')
método devuelve un objeto con un par clave-valor, algo como{ Navigation: function a(){}, Example1: function b(){}, Example2: function c(){} }
.Y si quisiéramos tomar una clave en ese objeto devuelto, digamos
Navigation
a una variable, podemos usar la destrucción de objetos para eso.Esto solo será posible si tenemos la llave en mano.
Entonces, después de la declaración de asignación, la variable local
Navigation
contendráfunction a(){}
Otro ejemplo tiene este aspecto.
fuente