강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

아무님의 프로필 이미지
아무

작성한 질문수

Spring Boot와 React로 배우는 초간단 REST API 게시판 만들기

리액트 사용시 컴포넌트 선언과 변수 선언 관련 질문

해결된 질문

작성

·

64

0

안녕하세요!

강의를 듣다 궁금한 점이 생겨 글 올립니다!

  1. 컴포넌트 생성 시 확장된 javascript문법인 jsx가 아닌 js를 사용하는 특별한 이유가 있나요?

  2. 함수형 컴포넌트 선언이랑 변수 선언시에 다 let으로 선언하신 이유가 따로 있나요? 화살표 함수를 사용하여 컴포넌트 선언시에는 보통 const를 사용하는 것 같은데 강의에서는 컴포넌트 선언시 뿐만 아니라 변수 선언시에 모두 let으로 사용해서 특별한 이유가 있는지 궁금합니다!

답변 2

1

영넨님의 프로필 이미지
영넨
지식공유자

  1. 특별한 이유는 없습니다! js가 배우는 입장에서 조금 더 친숙할거 같기에 js를 사용했습니다.

  2. 변수에 const같은 경우에 데이터가 고정되어있는 경우에 사용하였고, let으로 사용된 경우에는 데이터가 변경될 데이터들에는 사용했습니다! (데이터 변경이 있을 것 같아서 let으로 작성하고, 데이터 변경이 없는 변수도 있습니다! 해당 부분은 const로 변경하셔도 무관합니다), 컴포넌트 같은 경우에는 const를 사용하는 것을 권장하는데, 저는 손에 익어서 사용하게 됐네요! 다음에는 const로 작성해서 강의를 제작하도록 하겠습니다. 감사합니다!

아무님의 프로필 이미지
아무
질문자

  1. useState를 사용한 부분도 let을 사용하셨는데, 이 부분도 데이터 변경과 관련있는 것일까요? 공식 문서에서는 const만을 사용한 예시만 있어서 질문드립니다!


    공식 문서 : https://ko.react.dev/reference/react/useState

영넨님의 프로필 이미지
영넨
지식공유자

안녕하세요! 좋은 질문 감사합니다.

일단 useState는 실제로 데이터가 변경은 하지만 변수 자체는 재할당 되지 않아서 const를 선언하는게 맞습니다!! let을 사용해도 상관은 없지만 const가 안전하고 set변수이름 = 값 이런 형태로 값을 변경하기 때문에 const가 맞습니다. Javascript를 사용하다가 리엑트를 사용하게 되어서 let을 사용하는게 습관이 되어서 헷갈리게 만들었네요. 다음부터는 공식 문서에 맞게 작성하도록 하겠습니다.

 

추가적으로 특별한 이유가 없다면 usetState나 컴포넌트 함수, 이벤트 핸들러 등은 const로 선언하는게 리액트에서 권장하는 방식입니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. guddnboy님.

리액트를 사용하면서 JSX와 변수 선언 관련한 궁금증을 가지셨군요. 이러한 질문은 많은 분들이 헷갈려할 수 있는 부분입니다. 간단히 설명드리겠습니다.

  1. JSX 대신 JS를 사용하는 이유:

    • JSX는 JavaScript를 확장한 문법으로, React 컴포넌트를 작성할 때 HTML과 유사한 구문을 사용할 수 있게 해줍니다. 하지만 JS 파일 안에서도 JSX 문법을 사용할 수 있기 때문에 특별한 이유가 없으면 굳이 함께 사용하는 경우는 없습니다. 다만, 항목별로 환경설정이 되어있지 않은 경우, 코드 환경에 따라 순수 JS를 사용할 수 있습니다. 코드 스타일이나 팀의 협의에 따라 JSX 파일을 따로 두지 않고 만약 JS 파일에서 JSX를 그대로 사용하는 경우도 있습니다.
  2. let 대신 const를 사용하는 이유:

    • 지역적 변경이 필요한 변수를 선언하는 경우, let을 사용합니다. const는 상수 선언을 위해 사용되며, 선언 후 값을 변경할 수 없기 때문입니다. 강의에서 전역적으로 변경 가능한 변수들이 있거나, 선언 후 새로운 값이 대입될 가능성이 있는 경우에는 let을 사용하는 편이 유리합니다. 하지만 기본적으로는 상태 관리가 아닌 단순 고정된 값을 정의할 때는 const를 더 많이 사용하는 것이 관례입니다. 따라서, 강의에서 모든 변수나 함수에 let을 사용했다면, 이는 코드 스타일의 일관성을 유지하기 위한 선택일 수 있습니다.

더 구체적인 내용을 이해하는 데 도움이 되는 유사한 답변들이 아래에 있을 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

아무님의 프로필 이미지
아무

작성한 질문수

질문하기