πλͺ¨λνμ΅
πMDNλͺ¨λλ¬Έμ
Info: π’ νλ‘κ·Έλλ°μμΒ
λͺ¨λμ΄λΒ νλ‘κ·Έλ¨μ ꡬμ±νλ ꡬμ±μμμ μΌλΆ
λ€λ₯Έ μ¬λμ μ½λλ, λ΄κ° μκ² μͺΌκ° λμ μ½λλ₯Ό μ¬μ¬μ©νκ³ μΆμ λ μ΄λ€
- export,default
βοΈmodule.html
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>modules</h1>
<button>say</button>
<script>
document.querySelector('button').addEventListener('click', () => { say("λ§κ³ ") })
function say(user) {
alert(`'hello',${user}`)
}
</script>
</body>
</html>
μΌλ° html λ¬Έμμμ±ν λͺ¨λν νλ€
βοΈsay.js
/*export λ₯Ό λ³μλ ν¨μ μμ λΆμ΄λ©΄ μΈλΆ λͺ¨λμμ ν΄λΉ λ³μλ ν¨μμ μ κ·Όκ°λ₯*/
export function say(user){
alert(`Hello,${user}!`)
}
βοΈmodule.html
...
<body>
<script type="module">
/* import λ₯Ό μ¬μ©ν΄ say.jsμ ν¨μ sayλ₯Ό μ¬μ© */
import {say} from './say.js';
document.querySelector('button').addEventListener('click', () => { say("λ§κ³ ") })
</script>
</body>
</html>
μ€ννλ©΄

Info: π’ μ£Όμμ¬ν : λΌμ΄λΈμλ²μμ ν κ²
- λͺ¨λμ λ‘컬 νμΌμμ λμνμ§ μκ³ , HTTP λλ HTTPS νλ‘ν μ½μ ν΅ν΄μλ§ λμν©λλ€.
- λͺ¨λμ μμ λ§μ μ€μ½νκ° μμ΅λλ€. λ°λΌμ λͺ¨λ λ΄λΆμμ μ μν λ³μλ ν¨μλ λ€λ₯Έ μ€ν¬λ¦½νΈμμ μ κ·Όν μ μμ΅λλ€. λΈλΌμ°μ νκ²½μμλΒ
<script type="module">
μ μ¬μ©ν΄ λͺ¨λμ λ§λ€λ©΄ λ 립μ μΈ μ€μ½νκ° λ§λ€μ΄μ§λλ€. - λμΌν λͺ¨λμ΄ μ¬λ¬ κ³³μμ μ¬μ©λλλΌλ λͺ¨λμ μ΅μ΄ νΈμΆ μ λ¨ ν λ²λ§ μ€νλ©λλ€. μ€ν ν κ²°κ³Όλ μ΄ λͺ¨λμ κ°μ Έκ°λ €λ λͺ¨λ λͺ¨λμ λ΄λ³΄λ΄ μ§λλ€.
[μ¬λ¬ κ°μ²΄ export & import νκΈ°]
βοΈmain.js
function funcA() {
console.log("functionAA");
}
function funcB(test) {
console.log(test, "functionbb");
}
const varC = "hello";
export { funcA, funcB, varC };
import ν λλ {} λ₯Ό μ΄μ©ν©λλ€.
βοΈmodule.html
<script type="module">
import {funcA,funcB,varC} from './main.js';
funcA()
funcB(varC)
</script>
μ€ννλ©΄

default exportμ named export μ°¨μ΄μ
1. Default Export
- default λ‘ μ μΈλ λͺ¨λμ νλμ νμΌμμ λ¨ νλμ λ³μ λλ ν΄λμ€ λ±λ§ export ν μ μλ€.
//app.js
const app= () => {
...
}export default app
- import ν λλ μ무 μ΄λ¦μΌλ‘λ import κ°λ₯νλ€.
//app-child1.js
import ypp from '../app'
λλ
//app-child2.js
import bpp from '../app'
μ΄λ κ² μ¬μ©νλκ²μ΄ κ°λ₯
2. named export
- ν νμΌ λ΄μμ μ¬λ¬ λ³μ/ν΄λμ€ λ±λ±μ export νλ κ²μ΄ κ°λ₯νλ€.
export class MyFirstClass { /* ... */ }
export class MySecondClass { /* ... */ }
- λ€λ§, import μ {} μμλ€κ° export λ μ΄λ¦κ³Ό λμΌνκ² μ€μ ν΄μΌ νλ€.
import { MyFirstClass, MySecondClass } from './MyClass'
- λ€λ₯Έ μ΄λ¦μΌλ‘ import ν μ μμΌλ μλμ²λΌΒ
asλ₯Ό μ¬μ©ν΄μΌ νλ€.
import { MyFirstClass as BlahBlahClass, MySecondClass } from './MyClass'
asΒ λ₯Ό μ¬μ©νλ©΄ ν νμΌμ μλ ν΄λμ€/λ³μλ€μ ν λ²μ import ν μ μλ€.
import * as Hello from './MyClass'
// μ΄λ κ² import νλ©΄ Hello.MyFirstClass μ΄λ°μμΌλ‘ μ¬μ©ν΄μΌ ν¨