DEVLOG

[React] React에서 import할때 {}중괄호 유무의 의미 본문

frontend/react

[React] React에서 import할때 {}중괄호 유무의 의미

meroriiDev 2021. 3. 3. 16:58
728x90
반응형

문득 import 문에서 궁금한 점이 생겼다.

어떤 것은 그냥 import하고, 어떤 것은 중괄호{ } 안에 적어준다는 것이다.

 

그동안 별 생각 없이 다운받은 패키지에서 가져올 때는 {}를 붙이고~ 내가 만든거에서는 {}없이 하니 잘되네~

라고 생각했었는데 왜?라는 생각을 해본적이없었다!

 

그래서 찾아봤다 :)

 

import React from 'react';
import TodoTemplate from './components/TodoTemplate';
import { TodoProvider } from './TodoContext';

 

이 파일은 이제부터 React와 TodoTemplate, TodoProvider라는 변수를 사용할 수 있다.

그런데 아래 두개를 기준으로 볼때

TodoTemplate도 내가 만든파일, TodoContext도 내가 만든 파일인데 왜 TodoContext만 {}안에 들어간걸까?

 

이유는 export 방식의 차이이다.

 

모듈을 불러올 때 import라고 써주는 것처럼, 

모듈을 다른 파일로 보내려면 export라고 명시적으로 써줘야한다. 

 

export default TodoTemplate;

 

export TodoContext;

 

export해줄때 default를 붙인 TodoTemplate의 경우 중괄호없이 그냥 import하지만

default없이 export해준 TodoContext의 경우에는 중괄호 안에 담아 import해주면 되는 것이당 :)

 

./src/App.js
Attempted import error: './TodoContext' does not contain a default export (imported as 'TodoProvider').

잘못할 경우 이런 에러가 발생한다

728x90
반응형
Comments