๐ก ๋ถ๋ฆฌ๋ ํ์ผ๋ค์ ๋ชจ๋(module)์ด๋ผ๊ณ ํ๋ค.
export(๋ด๋ณด๋ด๊ธฐ): ๋ณ์, ํจ์ ์์ ๋ถ์ด๋ฉด ์ธ๋ถ ๋ชจ๋์์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
Import(๊ฐ์ ธ์ค๊ธฐ): ์ธ๋ถ ๋ชจ๋์ ๋ณ์, ํจ์๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.
// food.js
export const likeFood = (food) => {
console.log(`i like ${food}`);
}
// main.js
import {likeFood} from './food.js';
likeFood('fish'); // i like fish
๊ผญ ์ ์ธ๋ถ ์์ export๋ฅผ ๋ถ์ด์ง ์์๋ ๋๊ณ ๋งจ ์๋์์ ์ฌ์ฉํด๋ ๋๋ค.
// food.js
const likeFood = (food) => {
console.log(`i like ${food}`);
}
export {likeFood};
์๋์ ๊ฐ์ด ์ค๊ดํธ์์ ๋ฃ์ด ๊ฐ์ ธ์ฌ ์ ์๊ณ ์ฌ๋ฌ๊ฐ๋ฅผ ๋ฃ์ด ๊ฐ์ ธ์ฌ ์ ์๋ค.
// food.js
export const likeFood = (food) => {
console.log(`i like ${food}`);
}
export const disLikeFood = (food) => {
console.log(`i don't like ${food}`);
}
// main.js
import {likeFood, disLikeFood} from './food.js';
likeFood(fish) // i like fish
disLikeFood(fork) // i don't like fork
๊ฐ์ ธ์ฌ๊ฒ ๋๋ฌด ๋ง๋ค๋ฉด ์๋ ์ฒ๋ผ import * as <obj>
๊ฐ์ฒด ํํ๋ก ๊ฐ์ ธ์ฌ ์ ์์ด์ ์ฝ๋๋ฅผ ์ค์ผ ์ ์๋ค.
// main.js
import * as food from './food.js';
food.likeFood(fish) // i like fish
food.disLikeFood(fork) // i don't like fork
as๋ฅผ ์ด์ฉํด์ ๊ฐ์ ธ์จ ๋ชจ๋์ ์ด๋ฆ์ ๋ฐ๊ฟ์ ์ฌ์ฉํ ์ ์๋ค.
// main.js
import { likeFood as like} from './food.js';
like(fish) // i like fish
ํ์ผ์ด ๋ถ๋ฆฌ๋ styled-components๋ฅผ ๊ฐ์ ธ์ฌ ๋ import *
, import as
๋๊ฐ๋ฅผ ์ฌ์ฉํ๋ค
// styled.js
import styled from 'styled-components';
export const Box = styled.div`
width:100px; height: 100px;
`;
// index.js
import * as S from './styled';
const main = () => {
return <S.Box/> ;
}
๊ฐ์ ธ์์ ์ด๋ฆ์ ๋ณ๊ฒฝํ ์ ์์ง๋ง ์ ์ด์ ์ด๋ฆ์ ๋ณ๊ฒฝํด์ ๋ด๋ณด๋ผ ์๋ ์๋ค.
// food.js
const likeFood = (food) => {
console.log(`i like ${food}`);
}
export {likeFood as like};
// main.js
import {like} from './food.js';
like(fish) // i like fish
export default๋ ๋ชจ๋์ ํจ์๊ฐ ํ๋์ธ ๊ฒฝ์ฐ ์ฌ์ฉ ๋ผ์ export default๋ก ์ ์ธํ๋ค๋ฉด ํจ์๊ฐ ํ๋์ธ ๊ฒ์ ๋ช ํํ ๋ํ๋ผ ์ ์๋ค. ๋ํ import ์ ์ค๊ดํธ๊ฐ ํ์์๋ค. ์ฃผ๋ก ์ปดํฌ๋ํธ๋ฅผ ๋ด๋ณด๋ผ ๋ ๋ง์ด ์ฌ์ฉ๋๋ค.
named export: ์ค๊ดํธ ํ์
, default export: ์ค๊ดํธ ๋ถํ์
// Auth.js
const Auth = () => {...}
export default Auth;
// main.js
import Auth from './food.js';
<Auth/>
ํ์ผ์ ํ๋์ default export๋ง ์๊ธฐ์ ์ด๋ฆ์ด ์์ด ๋ด๋ณด๋ด๋ ๋๋ค.
๋ import์ as
ํ์์์ด ์ด๋ฆ์ ๋ฐ๊ฟ์ ์ฌ์ฉํ ์ ์์ง๋ง ํท๊ฐ๋ฆฌ๊ธฐ ์ฝ๊ธฐ์ ํ์ผ ์ด๋ฆ๊ณผ ๊ฐ์ ์ด๋ฆ์ผ๋ก ์ฌ์ฉํ๋ค.
์ฐธ๊ณ ๋ก ์๋ ์ฝ๋ ์ฒ๋ผ๋ ์ฌ์ฉํด ๋ด๋ณด๋ผ ์๋ ์๋ค.
// food.js
const likeFood = (food) => {
console.log(`i like ${food}`);
}
export {likeFood as default};
๋ฆฌ์กํธ๋ฅผ ๋ฐฐ์ฐ๊ณ ๋์
import
,export
๋ฅผ ์ ๋ง ๋ง์ด ์ฌ์ฉํ์ง๋ง ์ ํํ ๊ฐ๋ ์ ์์ง ๋ชปํ๋ ๊ฒ ๊ฐ๋ค. ๊ทธ๋์import as
์ ๊ฐ์ด ๋ณํ๋ ํํ๋ฅผ ๋ณผ ๋ ๋ง๋ค ๊ถ๊ธ์ฆ์ ๊ฐ์๊ณexport
์export default
์ ์ฐจ์ด๋ ์ ํํ ๋ชฐ๋์ง๋ง ์ด๋ฒ์ ์ ๋๋ก ๋ชจ๋์ ํ๋ณธ๊ฑฐ ๊ฐ์ ์์ด ํ๋ จํ๋ค. ์ด์ ์ ํํ ๊ฐ๋ ์ ์์์ผ๋ ์ ํ์ฉํ ์์ ์ด๋ค.