Я раньше не видел этого синтаксиса, и мне интересно, о чем он вообще.
var { Navigation } = require('react-router');
Скобки слева выдают синтаксическую ошибку:
неожиданный маркер {
Я не уверен, какая часть конфигурации веб-пакета трансформируется или какова цель синтаксиса. Это вещь гармонии? Может кто меня просветить?
javascript
webpack
ecmascript-6
капитаниль
источник
источник
webpack.config.js
вас, вероятно, естьjsx-loader
сharmony
включенным флагомОтветы:
Это называется деструктурирующим назначением и является частью стандарта ES2015 .
Деструктуризация объекта
Деструктуризация массива
источник
var {newVarName: oldVarName} = varSource;
очень похоже на{ newVarName: varSource.oldVarName }
илиscope.newVarName = varSource.oldVarName;
, но это, очевидно, неверно. Есть ли практическая причина для того, чтобы старые / существующие имена были слева от:
?Это деструктурирующее задание . Это новая функция ECMAScript 2015.
Эквивалентен:
источник
... использует деструктуризацию для достижения того же, что и ...
... но гораздо читабельнее.
источник
Это новая функция в ES6 для деструктуризации объектов.
Как мы все знаем, здесь происходит операция присваивания, что означает, что значение правой стороны присваивается переменной левой стороны.
В этом случае
require('react-router')
метод возвращает объект с парой ключ-значение, например,{ Navigation: function a(){}, Example1: function b(){}, Example2: function c(){} }
.И если мы хотим взять один ключ в этом возвращаемом объекте, скажем,
Navigation
переменной, мы можем использовать для этого деструкцию объекта .Это будет возможно только в том случае, если у нас будет ключ.
Итак, после оператора присваивания локальная переменная
Navigation
будет содержатьfunction a(){}
Другой пример выглядит так.
источник