exportì import ì§ììë ë¤ìí ë°©ìì¼ë¡ íì©ë©ëë¤.
ì´ì ì±í°ììë exportì importì 기본ì ì¸ ì¬ì©ë²ì ììë³´ìëë°, ì´ë² ì±í°ìì ì¢ ë ë¤ìí ì¬ì©ë²ì ë°°ìë³´ê² ìµëë¤.
ì ì¸ë¶ ìì export ë¶ì´ê¸°
ë³ìë í¨ì, í´ëì¤ë¥¼ ì ì¸í ë 맨 ìì export를 ë¶ì´ë©´ ë´ë³´ë´ê¸°ê° ê°ë¥í©ëë¤.
ìë ë´ë³´ë´ê¸°ë 모ë ì í¨í©ëë¤.
// ë°°ì´ ë´ë³´ë´ê¸°
export let months = ['Jan', 'Feb', 'Mar','Apr', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
// ìì ë´ë³´ë´ê¸°
export const MODULES_BECAME_STANDARD_YEAR = 2015;
// í´ëì¤ ë´ë³´ë´ê¸°
export class User {
constructor(name) {
this.name = name;
}
}
í´ëì¤ë í¨ì ì ì¸ ì, ì ì¸ë¶ ìì export를 ë¶ì¸ë¤ê³ í´ì í¨ì ì ì¸ ë°©ìì´ í¨ì ì ì¸ë¬¸ìì í¨ì ííì(function expression) ì¼ë¡ ë°ëì§ ììµëë¤. ë´ë³´ë´ ì§ê¸´ íì§ë§ ì¬ì í í¨ì ì ì¸ë¬¸ì
ëë¤.
ëë¶ë¶ì ìë°ì¤í¬ë¦½í¸ ì¤íì¼ ê°ì´ëë í¨ìë í´ëì¤ ì ì¸ ëì ì¸ë¯¸ì½ë¡ ì ë¶ì´ì§ ë§ë¼ê³ ê¶ì í©ëë¤.
ê°ì ì´ì ë¡ export classë export function ëì ì¸ë¯¸ì½ë¡ ì ë¶ì´ì§ ììµëë¤.
export function sayHi(user) {
alert(`Hello, ${user}!`);
} // ëì ;(ì¸ë¯¸ì½ë¡ )ì ë¶ì´ì§ ììµëë¤.
ì ì¸ë¶ì ë¨ì´ì§ ê³³ì export ë¶ì´ê¸°
ì ì¸ë¶ì exportê° ë¨ì´ì ¸ ìì´ë ë´ë³´ë´ê¸°ê° ê°ë¥í©ëë¤.
ìë ìììì í¨ì를 먼ì ì ì¸í í, ë§ì§ë§ ì¤ìì ë´ë³´ë ëë¤.
// ð say.js
function sayHi(user) {
alert(`Hello, ${user}!`);
}
function sayBye(user) {
alert(`Bye, ${user}!`);
}
export {sayHi, sayBye}; // ë í¨ì를 ë´ë³´ë
ì°¸ê³ ë¡ export문ì í¨ì ì ì¸ë¶ ìì ì ì´ì£¼ë ê²ë ëì¼íê² ëìí©ëë¤.
import *
무ì¸ê° ê°ì ¸ì¤ê³ ì¶ë¤ë©´ ìëì ê°ì´ ì´ì ëí 목ë¡ì ë§ë¤ì´ import {...}ìì ì ì´ì£¼ë©´ ë©ëë¤.
// ð main.js
import {sayHi, sayBye} from './say.js';
sayHi('John'); // Hello, John!
sayBye('John'); // Bye, John!
ê°ì ¸ì¬ ê²ì´ ë§ì¼ë©´ import * as <obj> ì²ë¼ ê°ì²´ ííë¡ ìíë ê²ë¤ì ê°ì§ê³ ì¬ ì ììµëë¤. ìì를 ì´í´ë³´ê² ìµëë¤.
// ð main.js
import * as say from './say.js';
say.sayHi('John');
say.sayBye('John');
ì´ë ê² 'í꺼ë²ì 모ë 걸 ê°ì ¸ì¤ë ë°©ìâì ì¬ì©íë©´ ì½ëê° ì§§ìì§ëë¤. ê·¸ë°ë°ë ì´ë¤ 걸 ê°ì ¸ì¬ ë ê·¸ ëìì 구체ì ì¼ë¡ ëª ìíë ê² ì¢ìµëë¤.
ì´ë ê² íë ë°ë ëª ê°ì§ ì´ì ê° ììµëë¤.
-
ì¹í©(webpack)ê³¼ ê°ì 모ë ë¹ë í´ì ë¡ë© ìë를 ëì´ê¸° ìí´ ëª¨ëë¤ì íë° ëª¨ì¼ë ë²ë¤ë§ê³¼ ìµì í를 ìíí©ëë¤. ì´ ê³¼ì ìì ì¬ì©íì§ ìë 리ìì¤ê° ìì ë기ë í©ëë¤.
ìëì ê°ì´ íë¡ì í¸ì ìëíí° ë¼ì´ë¸ë¬ë¦¬ì¸
say.js를 ëì íìë¤ ê°ì í©ìë¤. ì´ ë¼ì´ë¸ë¬ë¦¬ì ì ë§ì í¨ìê° ììµëë¤.// ð say.js export function sayHi() { ... } export function sayBye() { ... } export function becomeSilent() { ... }íì¬ë¡ì
say.jsì ì ë§ì í¨ì ì¤ ë¨ íëë§ íìí기 ë문ì, ì´ í¨ìë§ ê°ì ¸ì ë³´ê² ìµëë¤.// ð main.js import {sayHi} from './say.js';ë¹ë í´ì ì¤ì ì¬ì©ëë í¨ìê° ë¬´ìì¸ì§ íì í´, ê·¸ë ì§ ìì í¨ìë ìµì¢ ë²ë¤ë§ 결과물ì í¬í¨íì§ ììµëë¤. ì´ ê³¼ì ìì ë¶íìí ì½ëê° ì ê±°ë기 ë문ì ë¹ë 결과물ì í¬ê¸°ê° ììì§ëë¤. ì´ë° ìµì í ê³¼ì ì 'ê°ì§ì¹ê¸°(tree-shaking)'ë¼ê³ ë¶ë¦½ëë¤.
-
ì´ë¤ 걸 ê°ì§ê³ ì¬ì§ ëª ìíë©´ ì´ë¦ì ê°ê²°íê² ì¨ì¤ ì ììµëë¤.
say.sayHi()ë³´ë¤sayHi()ê° ë ê°ê²°íë¤ì. -
ì´ëì ì´ë¤ ê² ì°ì´ëì§ ëª íí기 ë문ì ì½ë 구조를 íì íê¸°ê° ì¬ì 리í©í ë§ì´ë ì ì§ë³´ìì ëìì´ ë©ëë¤.
import âasâ
as를 ì¬ì©íë©´ ì´ë¦ì ë°ê¿ì 모ëì ê°ì ¸ì¬ ì ììµëë¤.
sayHi를 hië¡, sayBye를 byeë¡ ì´ë¦ì ë°ê¿ì ê°ì ¸ì ë´
ìë¤.
// ð main.js
import {sayHi as hi, sayBye as bye} from './say.js';
hi('John'); // Hello, John!
bye('John'); // Bye, John!
Export âasâ
exportìë as를 ì¬ì©í ì ììµëë¤.
sayHiì sayBye를 ê°ê° hiì byeë¡ ì´ë¦ì ë°ê¿ ë´ë³´ë´ ë´
ìë¤.
// ð say.js
...
export {sayHi as hi, sayBye as bye};
ì´ì ë¤ë¥¸ 모ëìì ì´ í¨ìë¤ì ê°ì ¸ì¬ ë ì´ë¦ì hiì byeê° ë©ëë¤.
// ð main.js
import * as say from './say.js';
say.hi('John'); // Hello, John!
say.bye('John'); // Bye, John!
export default
모ëì í¬ê² ë ì¢ ë¥ë¡ ëë©ëë¤.
- ë³µìì í¨ìê° ìë ë¼ì´ë¸ë¬ë¦¬ ííì 모ë(ì ììì
say.js) - ê°ì²´ íëë§ ì ì¸ëì´ìë 모ë(ìëì
user.js.class Useríëë§ ë´ë³´ë´ê¸° í¨)
ëê°ë ë ë²ì§¸ ë°©ìì¼ë¡ 모ëì ë§ëë 걸 ì í¸í기 ë문ì í¨ì, í´ëì¤, ë³ì ë±ì ê°ì²´ë ì ì© ëª¨ë ìì 구íë©ëë¤.
ê·¸ë°ë° ì´ë ê² ëª¨ëì ë§ë¤ë¤ ë³´ë©´ ìì°ì¤ë íì¼ ê°ìê° ë§ìì§ ìë°ì ììµëë¤. ê·¸ë ëë¼ë 모ë ì´ë¦ì ì ì§ì´ì£¼ê³ , í´ëì íì¼ì ì ëë íë¡ì í¸ë¥¼ 구ì±íë©´ ì½ë íìì´ ì´ë µì§ ìì¼ë¯ë¡ ì´ë ì í 문ì ê° ëì§ ììµëë¤.
모ëì export defaultë¼ë í¹ë³í 문ë²ì ì§ìí©ëë¤. export default를 ì¬ì©íë©´ 'í´ë¹ 모ëì ê°ì²´ê° íëë§ ìë¤âë ì¬ì¤ì ëª
íí ëíë¼ ì ììµëë¤.
ë´ë³´ë´ê³ ì íë ê°ì²´ ìì export default를 ë¶ì¬ë´
ìë¤.
// ð user.js
export default class User { // export ìì 'default'를 ì¶ê°í´ë³´ììµëë¤.
constructor(name) {
this.name = name;
}
}
íì¼ íëì ëê° export defaultê° íëë§ ììµëë¤.
ì´ë ê² default를 ë¶ì¬ì 모ëì ë´ë³´ë´ë©´ ì¤ê´í¸ {} ìì´ ëª¨ëì ê°ì ¸ì¬ ì ììµëë¤.
// ð main.js
import User from './user.js'; // {User}ê° ìë Userë¡ í´ëì¤ë¥¼ ê°ì ¸ììµëë¤.
new User('John');
ì¤ê´í¸ ìì´ í´ëì¤ë¥¼ ê°ì ¸ì¤ë ë ê¹ëí´ ë³´ì´ë¤ì. 모ëì ë§ ë°°ì°ê¸° ììí ì¬ëì ì¤ê´í¸ë¥¼ 빼먹ë ì¤ì를 ì주 í©ëë¤. named export í 모ëì ê°ì ¸ì¤ë ¤ë©´ ì¤ê´í¸ê° íìíê³ , default export í 모ëì ê°ì ¸ì¤ë ¤ë©´ ì¤ê´í¸ê° íìíì§ ìë¤ë 걸 기ìµí´ ì¤ì를 ë°©ì§í©ìë¤.
| named export | default export |
|---|---|
export class User {...} |
export default class User {...} |
import {User} from ... |
import User from ... |
ì¬ì¤ named exportì default export를 ê°ì 모ëìì ëìì ì¬ì©í´ë 문ì ë ììµëë¤. ê·¸ë°ë° ì¤ë¬´ìì ì´ë ê² ìì´ ì°ë ì¬ë¡ê° íì¹ ììµëë¤. í íì¼ì named exportë default export ë ì¤ íëë§ ì¬ì©í©ëë¤.
íì¼ë¹ ìµë íëì default exportê° ìì ì ìì¼ë¯ë¡ ë´ë³´ë¼ ê°ì²´ì ì´ë¦ì´ ìì´ë ê´ì°®ìµëë¤.
ìë ììì ê°ì²´ì ì´ë¦ì´ ìì§ë§ 모ë ìë¬ ìì´ ì ëìí©ëë¤.
export default class { // í´ëì¤ ì´ë¦ì´ ìì
constructor() { ... }
}
export default function(user) { // í¨ì ì´ë¦ì´ ìì
alert(`Hello, ${user}!`);
}
// ì´ë¦ ìì´ ë°°ì´ ííì ê°ì ë´ë³´ë
export default ['Jan', 'Feb', 'Mar','Apr', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
export defaultë íì¼ë¹ íëë§ ìì¼ë¯ë¡ ì´ ê°ì²´ë¥¼ ê°ì ¸ì¤ê¸° íë ¤ë 모ëìì ì¤ê´í¸ ìì´ë ì´ë¤ ê°ì²´ë¥¼ ê°ì§ê³ ì¬ì§ ì íí ì ì ìì¼ë¯ë¡ ì´ë¦ì´ ìì´ë ê´ì°®ìµëë¤.
default를 ë¶ì´ì§ ììë¤ë©´ ê°ì²´ì ì´ë¦ì´ ìë ê²½ì° ìë¬ê° ë°ìí©ëë¤.
export class { // ìë¬! (default exportê° ìë ê²½ì°ì ì´ë¦ì´ ê¼ íìí©ëë¤.)
constructor() {}
}
âdefaultâ name
default í¤ìëë 기본 ë´ë³´ë´ê¸°ë¥¼ 참조íë ì©ëë¡ ì¢
ì¢
ì¬ì©ë©ëë¤.
í¨ì를 ë´ë³´ë¼ ë ìëì ê°ì´ í¨ì ì ì¸ë¶ì ë¨ì´ì§ ê³³ìì default í¤ìë를 ì¬ì©íë©´, í´ë¹ í¨ì를 기본 ë´ë³´ë´ê¸° í ì ììµëë¤.
function sayHi(user) {
alert(`Hello, ${user}!`);
}
// í¨ì ì ì¸ë¶ ìì 'export default'를 ë¶ì¬ì¤ ê²ê³¼ ëì¼í©ëë¤.
export {sayHi as default};
íì¹ ìì§ë§ user.jsë¼ë 모ëì âdefaultâ export íëì ë¤ìì named exportê° ìë¤ê³ í´ë´
ìë¤.
// ð user.js
export default class User {
constructor(name) {
this.name = name;
}
}
export function sayHi(user) {
alert(`Hello, ${user}!`);
}
ìëì ê°ì ë°©ìì ì¬ì©íë©´ default exportì named export를 ëìì ê°ì ¸ì¬ ì ììµëë¤.
// ð main.js
import {default as User, sayHi} from './user.js';
new User('John');
* 를 ì¬ì©í´ 모ë ê²ì ê°ì²´ ííë¡ ê°ì ¸ì¤ë ë°©ë²ë ìëë°, ì´ ê²½ì°ì default íë¡í¼í°ë ì íí default export를 ê°ë¦¬íµëë¤.
// ð main.js
import * as user from './user.js';
let User = user.default; // default export
new User('John');
default exportì ì´ë¦ì ê´í ê·ì¹
named exportë ë´ë³´ëì ë ì¬ì©í ì´ë¦ ê·¸ëë¡ ê°ì ¸ì¤ë¯ë¡ ê´ë ¨ ì 보를 íì í기 ì½ìµëë¤.
ê·¸ë°ë° ìëì ê°ì´ ë´ë³´ë´ê¸° í ë ì´ ì´ë¦ê³¼ ê°ì ¸ì¤ê¸° í ë ì¸ ì´ë¦ì´ ëì¼í´ì¼ íë¤ë ì ì½ì´ ìì£ .
import {User} from './user.js';
// import {MyUser}ì ì¬ì©í ì ììµëë¤. ë°ëì {User}ì´ì´ì¼ í©ëë¤.
named exportìë ë¤ë¥´ê² default exportë ê°ì ¸ì¤ê¸° í ë ê°ë°ìê° ìíë ëë¡ ì´ë¦ì ì§ì í´ ì¤ ì ììµëë¤.
import User from './user.js'; // ëì
import MyUser from './user.js'; // ëì
// ì´ë¤ ì´ë¦ì´ë ìë¬ ìì´ ëìí©ëë¤.
ê·¸ë°ë° ì´ë ê² ìì ë¡ê² ì´ë¦ì ì§ë¤ ë³´ë©´ ê°ì 걸 ê°ì ¸ì¤ëë°ë ì´ë¦ì´ ë¬ë¼ í¼ëì ì¬ì§ê° ì길 ì ììµëë¤.
ì´ë° 문ì 를 ìë°©íê³ ì½ëì ì¼ê´ì±ì ì ì§í기 ìí´ default export í ê²ì ê°ì ¸ì¬ ë ìëì ê°ì´ íì¼ ì´ë¦ê³¼ ëì¼í ì´ë¦ì ì¬ì©íëë¡ íìë¼ë¦¬ ë´ë¶ ê·ì¹ì ì í ì ììµëë¤.
import User from './user.js';
import LoginForm from './loginForm.js';
import func from '/path/to/func.js';
...
ê·¸ë°ë° ê·ì¹ì´ ìì´ë ì´ë¥¼ ì§í¤ì§ ìë ì¬ëì´ ìì ì ì기 ë문ì ì´ë¤ íì named exportë§ ì¬ì©í ê²ì ê°ì íë ê²½ì°ë ììµëë¤. 모ë íëìì ë¨ íëì ê°ì²´ë§ ë´ë³´ë´ë ê²½ì°ìë default ìì´ ì´ë¦ì ë¶ì¬ ë´ë³´ë´ë©´ í¼ëì ë°©ì§í ì ì기 ë문ì´ì£ .
ì´ë° ê·ì¹ì ìëìì ë°°ì¸ ëª¨ë ë¤ì ë´ë³´ë´ê¸°ë¥¼ ì½ê² í´ì¤ë¤ë ì¥ì ë ììµëë¤.
모ë ë¤ì ë´ë³´ë´ê¸°
export ... from ... 문ë²ì ì¬ì©íë©´ ê°ì ¸ì¨ ê°ì²´ë¥¼ ì¦ì âë¤ì ë´ë³´ë´ê¸°(re-export)â í ì ììµëë¤. ì´ë¦ì ë°ê¿ì ë¤ì ë´ë³´ë¼ ì ìë ê²ì´ì£ . ìì를 ì´í´ë´
ìë¤.
export {sayHi} from './say.js'; // sayHi를 ë¤ì ë´ë³´ë´ê¸° í¨
export {default as User} from './user.js'; // default export를 ë¤ì ë´ë³´ë´ê¸° í¨
ë¤ì ë´ë³´ë´ê¸°ê° ì íìíê±´ì§ ìë¬¸ì´ ëì¤ ê²ëë¤. ì ì¤ ì¼ì´ì¤ë¥¼ íµí´ ë¤ì ë´ë³´ë´ê¸°ê° ì¤ë¬´ìì ì¸ì ì¬ì©ëëì§ ììë´ ìë¤.
NPMì íµí´ ì¸ë¶ì ê³µê°í 'í¨í¤ì§(package)'를 ë§ë¤ê³ ìë¤ê³ ê°ì í©ìë¤. ì´ í¨í¤ì§ë ìë§ì 모ëë¡ êµ¬ì±ëì´ìëë°, ëªëª 모ëì ì¸ë¶ì ê³µê°í 기ë¥ì, ëªëª 모ëì ì´ë¬í 모ëì ëì주ë âí¬í¼â ìí ì ë´ë¹íê³ ìë¤ê³ í©ìë¤.
í¨í¤ì§ 구조ë ìëì ê°ìµëë¤.
auth/
index.js
user.js
helpers.js
tests/
login.js
providers/
github.js
facebook.js
...
ì§ì
ì ìí ì íë '주ì íì¼âì¸ auth/index.jsì íµí´ 기ë¥ì ì¸ë¶ì ë
¸ì¶ìí¤ë©´ ì´ í¨í¤ì§ë¥¼ ì¬ì©íë ê°ë°ìë¤ì ìëì ê°ì ì½ëë¡ í´ë¹ 기ë¥ì ì¬ì©í ê²ëë¤.
import {login, logout} from 'auth/index.js'
ì´ë ì°ë¦¬ê° ë§ë í¨í¤ì§ë¥¼ ì¬ì©íë ì¸ë¶ ê°ë°ìê° í¨í¤ì§ ìì íì¼ë¤ì ë¤ì ¸ ë´ë¶ 구조를 ê±´ëë¦¬ê² íë©´ ì ë©ëë¤. ê·¸ë¬ë ¤ë©´ ê³µê°í ê²ë§ auth/index.jsì ë£ì´ ë´ë³´ë´ê¸° íê³ ë머ì§ë ì¨ê¸°ë ê² ì¢ê² ì£ .
ì´ë ë´ë³´ë¼ 기ë¥ì í¨í¤ì§ ì ë°ì ë¶ì°íì¬ êµ¬íí í, auth/index.jsìì ì´ ê¸°ë¥ë¤ì ê°ì ¸ì¤ê³ ì´ë¥¼ ë¤ì ë´ë³´ë´ë©´ ìíë ë°ë¥¼ ì´ë ì ë ë¬ì±í ì ììµëë¤.
// ð auth/index.js
// loginê³¼ logoutì ê°ì§ê³ ì¨ í ë°ë¡ ë´ë³´ë
ëë¤.
import {login, logout} from './helpers.js';
export {login, logout};
// User를 ê°ì ¸ì¨ í ë°ë¡ ë´ë³´ë
ëë¤.
import User from './user.js';
export {User};
...
ì´ì ì¸ë¶ ê°ë°ìë¤ì import {login} from "auth/index.js"ë¡ ì°ë¦¬ê° ë§ë í¨í¤ì§ë¥¼ ì´ì©í ì ììµëë¤.
export ... from ...ë ìì ê°ì´ ê°ì²´ë¥¼ ê°ì§ê³ ì¨ í ë°ë¡ ë´ë³´ë¼ ë ì¸ ì ìë 문ë²ì
ëë¤. ìë ììë ì ììì ëì¼íê² ëìí©ëë¤.
// ð auth/index.js
// loginê³¼ logoutì ê°ì§ê³ ì¨ í ë°ë¡ ë´ë³´ë
ëë¤.
export {login, logout} from './helpers.js';
// User ê°ì ¸ì¨ í ë°ë¡ ë´ë³´ë
ëë¤.
export {default as User} from './user.js';
...
default export ë¤ì ë´ë³´ë´ê¸°
기본 ë´ë³´ë´ê¸°ë¥¼ ë¤ì ë´ë³´ë¼ ëë 주ìí´ì¼ í ì ë¤ì´ ììµëë¤.
user.js ë´ì í´ëì¤ User를 ë¤ì ë´ë³´ë´ê¸° íë¤ê³ ê°ì í´ ë´
ìë¤.
// ð user.js
export default class User {
// ...
}
-
User를export User from './user.js'ë¡ ë¤ì ë´ë³´ë´ê¸° í ë ë¬¸ë² ìë¬ê° ë°ìí©ëë¤. ì´ëê° ì못ë 걸ê¹ì?default export를 ë¤ì ë´ë³´ë´ë ¤ë©´ ì ììì²ë¼
export {default as User}를 ì¬ì©í´ì¼ í©ëë¤. -
export * from './user.js'를 ì¬ì©í´ 모ë 걸 í ë²ì ë¤ì ë´ë³´ë´ë©´ default exportë 무ìëê³ , named exportë§ ë¤ì ë´ë³´ë´ì§ëë¤.ë ê°ì§ë¥¼ ëìì ë¤ì ë´ë³´ë´ê³ ì¶ë¤ë©´ ë 문ì ëìì ì¬ì©í´ì¼ í©ëë¤.
export * from './user.js'; // named export를 ë¤ì ë´ë³´ë´ê¸° export {default} from './user.js'; // default export를 ë¤ì ë´ë³´ë´ê¸°
default export를 ë¤ì ë´ë³´ë¼ ë ì´ë° í¹ì´í ìí©ë ì¸ì§íê³ ìë¤ê° ì²ë¦¬í´ì¤ì¼ íë¯ë¡ ëªëª ê°ë°ìë¤ì default export를 ë¤ì ë´ë³´ë´ëê²ì ì í¸íì§ ììµëë¤.
ìì½
ì§ê¸ê¹ì§ ë°°ì´ export íì
ì ë¤ì íë² ì´í´ë´
ìë¤.
ìë íì ë¤ì ì ë³´ê³ ì¼ë§ë 기ìµíëì§ ì²´í¬í´ ë³´ì¸ì.
- í´ëì¤, í¨ì ë±ì ì ì¸ë¶ ìì export ë¶ì¬ì ë´ë³´ë´ê¸°:
export [default] class/function/variable ...
- ì´ë¦ ìë ê°ì²´ ë´ë³´ë´ê¸°:
export {x [as y], ...}.
- ë¤ì ë´ë³´ë´ê¸°:
export {x [as y], ...} from "module"export * from "module"(default exportë ë¤ì ë´ë³´ë´ ì§ì§ ìì)export {default [as y]} from "module"(default export를 ë¤ì ë´ë³´ë)
ê°ì ¸ì¤ê¸° íì ìì ì ë¦¬í´ ë´ ìë¤.
- named export ê°ì ¸ì¤ê¸°:
import {x [as y], ...} from "mod"
- default export ê°ì ¸ì¤ê¸°:
import x from "mod"import {default as x} from "mod"
- í ë²ì ê°ì ¸ì¤ê¸°:
import * as obj from "mod"
- 모ëì ê°ì ¸ì¤ê¸´ íì§ë§(ì½ëë ì¤íë¨), ë³ìì í ë¹íì§ ì기:
import "mod"
import/export 문ì ì¤í¬ë¦½í¸ì 맨 ìë 맨 ìëì ì¬ ì ìëë° ì´ ëì ì°¨ì´ê° ììµëë¤.
ë°ë¼ì ìë ì¤í¬ë¦½í¸ë 문ì ìì´ ì ëìí©ëë¤.
sayHi();
// ...
import {sayHi} from './say.js'; // import 문ì íì¼ ë§¨ ìëì ìì¹ìí´
ëê°ë í¸ìì ì¤í¬ë¦½í¸ 맨 ìì import 문ì ìì¹ìíµëë¤.
import/export 문ì ë¸ë¡ {...}ììì ëìíì§ ìëë¤ë ì ì ì ìíì길 ë°ëëë¤.
ì¡°ê±´ì 충족íë©´ 모ëì ê°ì ¸ì¤ë ¤ë ìëë¡ ìì±ë ìë ì½ëë ëìíì§ ììµëë¤.
if (something) {
import {sayHi} from "./say.js"; // ìë¬: import 문ì ìµìì ë 벨ì ìì¹í´ì¼ í©ëë¤.
}
ê·¸ë°ë° ì í리ì¼ì´ì ì ìì±íë¤ ë³´ë©´ ì¡°ê±´ì ë°ë¼ 모ëì ê°ì ¸ìì¼ íê±°ë ì´ë¤ í¹ì ìì ì 모ëì ë¶ë¬ìì¼ íë ê²½ì°ê° ìê¹ëë¤. ì´ë´ ë ì´ë¤ ë°©ë²ì ì¬ì©í´ì¼ í ê¹ì? ìì²ì´ ìì ëë§ ëª¨ëì ë¶ë¬ì¤ë ê² ê°ë¥í ê¹ì?
ëì ì¼ë¡ 모ëì ê°ì ¸ì¤ë ë°©ë²(dynamic import)ì ë¤ì ì±í°ìì ììë³´ëë¡ íê² ìµëë¤.
ëê¸
<code>í그를, ì¬ë¬ ì¤ë¡ 구ì±ë ì½ë를 ì½ì íê³ ì¶ë¤ë©´<pre>í그를 ì´ì©íì¸ì. 10ì¤ ì´ìì ì½ëë plnkr, JSBin, codepen ë±ì ìëë°ì¤ë¥¼ ì¬ì©íì¸ì.