ES6-import&export-example.md
๐กModern JavaScript Development: Modules and Tooling
Import & Export ์ค์ต
- ํ์ ๋ชจ๋๋ค์ import์ ๋ค์ด๋ก๋, ๋งํฌ, ์คํ์ด ์ด๋ค์ง ํ, ๋ฉ์ธ ๋ชจ๋์ด ์คํ๋ฉ๋๋ค.
- ๋ค์๊ณผ ๊ฐ์ด ์คํํ ๊ฒฐ๊ณผ์
๋๋ค.
-
script.js
: ๋ฉ์ธ ๋ชจ๋import { addToCart, cart } from "./shoppingCart.js"; // a. importํ๊ณ downloadํฉ๋๋ค. // b. exports๋ฅผ import์ linkํฉ๋๋ค. // c. ํ์ ๋ชจ๋์ ์คํํฉ๋๋ค. => shoppingCart๋ก ... // e. ํ์ ๋ชจ๋ ์ฝ๋๋ฅผ ์คํํ ํ, ๊ฒฐ๊ณผ๋ฅผ exportํฉ๋๋ค. // f. ๋ฉ์ธ ๋ชจ๋์ ์คํํฉ๋๋ค. console.log("import & download - ๋ฉ์ธ ๋ชจ๋"); addToCart(600, "apple"); // addToCart๋ shoppingCart์์ importํ ํจ์์ ๋๋ค. addToCart(1, "pineapple"); console.log( "cart: " + cart.map((e) => `\n{product: ${e.product} quantity: ${e.quantity}}`) // cart๋ [{{product: 600 quantity: apple}, {product: 1 quantity: pineapple}] ์ ๋๋ค. // ํด๋น ํจ์ ์ค์ฝํ์ ๋ณ์ํ๊ฒฝ์ ํ์ธํ ์ ์์ต๋๋ค.(ํด๋ก์ ) // importํ cart๋ exports์ cart์ link๋์๊ธฐ ๋๋ฌธ์, // ์ดํ์ ๋ฐ๋ ๊ฐ์ ์์๋ณผ ์ ์์ต๋๋ค. );
๐ console.log(cart) ํด๋น ํจ์ ์ค์ฝํ์ ๋ณ์ํ๊ฒฝ์ ํ์ธํ ์ ์์ต๋๋ค.(ํด๋ก์ ) importํ cart๋ exports์ cart์ link๋์๊ธฐ ๋๋ฌธ์, ์ดํ์ ๋ฐ๋ ๊ฐ์ ์์๋ณผ ์ ์์ต๋๋ค.
-
shoppingCart.js
: ํ์ ๋ชจ๋console.log("importํ ๋ชจ๋ ์คํ"); // c. ํ์ ๋ชจ๋์ ์คํํฉ๋๋ค. const shippingCost = 3500; export const cart = []; // e. ํ์ ๋ชจ๋ ์ฝ๋๋ฅผ ์คํํ ํ, ๊ฒฐ๊ณผ๋ฅผ exportํฉ๋๋ค. export const addToCart = (product, quantity) => { // e. ํ์ ๋ชจ๋ ์ฝ๋๋ฅผ ์คํํ ํ, ๊ฒฐ๊ณผ๋ฅผ exportํฉ๋๋ค. cart.push({ product, quantity }); console.log(`${quantity} ${product} added to cart`); }; console.log("cart: " + cart); // d. ํ์ ๋ชจ๋์ด ์คํ๋ฉ๋๋ค. ํ์ฌ cart๋ []์ ๋๋ค. console.log("exporting - importํ ๋ชจ๋๊ณผ link");
-
- import ๋ณ์๋ช
์ ๋ฐ๊ฟ ์ ์์ต๋๋ค.
import { addToCart as ๋ํ๊ธฐ, cart as ๋ฐ๊ตฌ๋ } from "./shoppingCart.js"; console.log("import & download - ๋ฉ์ธ ๋ชจ๋"); ๋ํ๊ธฐ(600, "apple"); ๋ํ๊ธฐ(1, "pineapple"); console.log( "cart: " + ๋ฐ๊ตฌ๋.map((e) => `\n{product: ${e.product} quantity: ${e.quantity}}`) );
- ์์ผ๋์นด๋๋ก ์ ๋ถ ๋ถ๋ฌ์ฌ ๋, ์ฒซ๊ธ์ ๋๋ฌธ์๋ก conventionํ ๋ค, public API์ฒ๋ผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
import * as ShoppingCart from './shoppingCart' ... ShoppingCart.totalPrice
- default export์ export๋ฅผ ๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. (๋ณต์กํด์ง๋ฏ๋ก ์ฌ์ฉํ์ง ์์ต๋๋ค.)
import add, { cart } from "./shoppingCart.js";