import {Link} from 'react-router';
импортирует назвал экспорт из react-router
, то есть что-то вроде
export const Link = 42;
import Router from 'react-router';
const {Link} = Router;
вытаскивает недвижимость Link
от экспорт по умолчанию, предполагая, что это объект, например.
export default {
Link: 42
};
(по умолчанию экспорт фактически не является стандартным именованным экспортом с именем «по умолчанию»).
См. Также export
on MDN.
Полный пример:
// react-router.js
export const Link = 42;
export default {
Link: 21,
};
// something.js
import {Link} from './react-router';
import Router from './react-router';
const {Link: Link2} = Router;
console.log(Link); // 42
console.log(Link2); // 21
С Вавилонской 5 и ниже, я считаю, что они были взаимозаменяемы из-за способа ES6 модули были transpiled к CommonJS. Но это две разные конструкции в том, что касается языка.
К сожалению, они имеют один и тот же сокращенный синтаксис, но если вы проверяете свои длинные формы они явно отличаются : 'var {" Link ": Link} = Router;' vs 'import {Link as Link} из '...';' – Bergi