Computer Science/Front-end

[javascript][typescript] default export vs export ~

_cactus 2022. 12. 27. 13:33
๋ฐ˜์‘ํ˜•

javascript, typescript๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด ๋ชจ๋“ˆ์„ ๋งŽ์ด ๋งŒ๋“ค๊ฒŒ ๋˜๊ณ  ๊ทธ๋•Œ๋งˆ๋‹ค ํŒŒ์ผ ํ•˜๋‹จ์—๋Š” "export default ~" ํ˜น์€ "export const ~" ๋“ฑ์˜ export ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

์ด๊ธ€์€ ๋ฌด์ง€์„ฑ์œผ๋กœ export ํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•œ ๊ธ€์ด๋‹ค.

 

export์—๋Š” default export์™€ named export๊ฐ€ ์žˆ๋‹ค

 

1. default export                                                                                                  

    - ํŒŒ์ผ๋‹น ์ตœ๋Œ€ 1๊ฐœ์˜ default export๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Œ

    - ๋ณดํ†ต ํŒŒ์ผ ๋‚ด์—์„œ ํ•œ๊ฐœ๋งŒ exportํ•  ๋•Œ vs ๋Œ€ํ‘œ๋กœ exportํ•  ๊ฒƒ์ด ์žˆ์„ ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ

    - ํ•ด๋‹น ๋ชจ๋“ˆ์—๋Š” ๊ฐœ์ฒด๊ฐ€ ํ•˜๋‚˜๋งŒ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์˜๋ฏธ

    - importํ•  ๋•Œ ์ค‘๊ด„ํ˜ธ{} ์—†์ด ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ

    - ์œ„์™€ ๊ฐ™์ด exportํ•  ๊ฒฝ์šฐ importํ•  ๋•Œ ์•„๋ฌด ์ด๋ฆ„์œผ๋กœ๋‚˜ import ํ•ด๋„ ๋จ

    - ์•„๋ž˜ ์ฒ˜๋Ÿผ import ๋’ค์— ๋‚ด ๋ง˜๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ์ด๋ฆ„์œผ๋กœ ์“ธ ์ˆ˜ ์žˆ์Œ

// 1.
import Navigation from 'src/pages/NavigationPage'
// 2.
import ThisNavigation from 'src/pages/NavigationPage'
๋ฐ˜์‘ํ˜•

2. named export                                                                                                  

    - ์„ ์–ธ๋ถ€ ์•ž์— export ๋ถ™์ด๋Š” ๊ฒฝ์šฐ

    - ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜, ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•  ๋•Œ ๋งจ ์•ž์— export๋ฅผ ๋ถ™์ž„ (์•„๋ž˜ ์˜ˆ์‹œ)

// ๋ฐฐ์—ด ๋‚ด๋ณด๋‚ด๊ธฐ
export let months = ['Jan', 'Feb', 'Mar','Apr', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];

// ์ƒ์ˆ˜ ๋‚ด๋ณด๋‚ด๊ธฐ
export const THIS_YEAR = 2023;

// ํด๋ž˜์Šค ๋‚ด๋ณด๋‚ด๊ธฐ
export class User {
  constructor(name) {
    this.name = name;
  }
}

 

    - ํ•˜์ง€๋งŒ ๊ผญ ์„ ์–ธ๋ถ€ ์•ž์— export๋ถ™์ด๋Š” ๋ฐฉ์‹์œผ๋กœ๋งŒ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹˜

    - ๋จผ์ € ์„ ์–ธํ•œ ํ›„, ํŒŒ์ผ ํ•˜๋‹จ ๋งˆ์ง€๋ง‰์—์„œ ๋‚ด๋ณด๋‚ด๊ธฐ๋„ ๊ฐ€๋Šฅ (์•„๋ž˜ ์˜ˆ์‹œ)

// User.js
function setAge(user) {
  age = user.age;
}

function setName(user) {
  name = user.name;
}

export {setAge, setName}; // ๋‘ ํ•จ์ˆ˜ ๋‚ด๋ณด๋‚ด๊ธฐ

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•