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

동화·2023년 2월 13일
4

코딩메모

목록 보기
3/8
post-custom-banner

import 시에, 궁금한 점이 생겼다.
사실 그동안 코딩하면서 이건 중괄호를 적네? 이건 안 적네? 하면서도 오류 뜨거나 안 될 때마다 지워가면서 했었는데, 그게 그간 별생각 없이 했었는데 이제서야 이유가 궁금해졌다.

최근에 실습했던 리덕스 툴킷을 가져와 봤당

import ChangeColor from "./features/color/ChangeColor";
import { Counter } from "./features/counter/Counter";

얘네둘은 같은 지위를 가진 애들인데, 하나는 중괄호를 써주고
하나는 써주지 않은 상태로 import가 되고 있다.

이유는, export default 에 있었음!

export default ChangeColor;
export function Counter() { ... }

ChangeColor는 함수를 만들고 마지막에 default 로 export 해주었고,
Counter 함수는 만듦과 동시에 default 없이 export 해주었던 것이다.

그래서 default 와 함께 export 한 ChangeColor의 경우 중괄호없이 그냥 import하지만,
default없이 export 해준 Counter 경우에는 중괄호 안에 담아 import해주면 되는 것!!

export 할 경우에는 import { 함수명 } from
export default 할 경우에는 import 함수명 from
+ 방출된 모듈의 이름과 상관없이 as를 쓰지 않고, 사용가능

https://ko.javascript.info/import-export#ref-4122

post-custom-banner

6개의 댓글

comment-user-thumbnail
2023년 2월 13일

앗 import 할때마다 중괄호 넣고 말고 궁금했지만 찾아볼 생각을 안했는데 이번에 알고갑니다 좋은정보 감사합니다
-스터디원 김소라-

답글 달기
comment-user-thumbnail
2023년 2월 13일

아..ㅋ 이런 이유가 있었네요. 이것도 모르고 그냥 무지성으로 쓰기만 하고 있었던 제가 부끄럽군요.

답글 달기
comment-user-thumbnail
2023년 2월 15일

무심코 지나갈 만한 내용 알려주셔서 감사합니다 ! 재밌네용 ㅋ.ㅋ

답글 달기
comment-user-thumbnail
2023년 2월 16일

거의 자동완성(?) 으로 import 해줘서 넘어갔던 부분이네요 !! 잘 익히고 갑니당:)

답글 달기
comment-user-thumbnail
2023년 2월 18일

저도 오류 뜨면 그때마다 중괄호 추가해보거나 삭제해서 넘어가서 깊게 생각해보지 않은 부분인데 export 하는 방식에 따른 거였군요! 추가로 더 찾아보니 export default는 파일에서 export할 게 하나이거나 대표로 export 할 경우 사용한다고 하네요😃
(+ 가끔 export default const~ 이런식으로 작성하고 이 방법은 왜 안되는거지.. 했던 지난 날의 제가 생각납니다...)

답글 달기
comment-user-thumbnail
2023년 2월 19일

import 부분 저도 어쩔 땐 오류나고 안나고 그래서 찾아봤었던 기억이 나네요. 잘봤숩니다 ㅎㅎㅎ

답글 달기