import {Link} from 'react-router';
die Eigenschaft ein namens Export von react-router
, also so etwas wie
export const Link = 42;
import Router from 'react-router';
const {Link} = Router;
zieht importiert Link
von der Standardexport, unter der Annahme, dass es sich um ein Objekt handelt, z.B.
(der Standard-Export ist eigentlich nichts anderes als ein standardisierter benannter Export mit dem Namen "default").
Siehe auch export
on MDN.
Komplettes Beispiel:
// 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
Mit Babel 5 und unten Ich glaube, sie wegen der Art und Weise ES6 Module transpiled bis Commonjs wurden austauschbar waren. Aber das sind zwei verschiedene Konstrukte, soweit es die Sprache betrifft.
Leider die gleiche Stenografie Syntax sie haben, aber wenn man ihre langen Formen überprüfen sind sie deutlich anders : 'var {" Link ": Link} = Router;' vs 'Importieren {Link als Link} von '...';' – Bergi