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

아리마님의 프로필 이미지
아리마

작성한 질문수

실전 리액트 프로그래밍

컴포넌트 외부 변수 문의

작성

·

280

0

강사님 안녕하세요.

초보적인 질문을 하나 드리려고 합니다.

컴포넌트 외부에서 특수사항을 제외하고 let 변수를 사용하면 안되는 것이 맞나요?

저는 컴포넌트가 중복되어 여기 저기 활용될 시, 외부 변수가 공유되는 줄 모르고 있었는데요.

개발을 하면서 먼가 이상해서 확인해보니 let 변수가 바뀌면 다른 곳에서 사용된 동일 컴포넌트에서도

변경된 값이 동일하게 적용되더라고요..

초보적인 문의를 드려 죄송합니다;; 

답변 2

1

이재승님의 프로필 이미지
이재승
지식공유자

안녕하세요
외부에서 정의된 let 변수는 아래와 같은 문제가 있습니다.

1. 만약 해당 변수가 JSX 결과물에 영향을 미친다면, 값이 변경되어도 다시 렌더링된다는 보장이 없어서 문제가 됩니다. 이때는 useState 를 사용해야합니다
2. 같은 컴포넌트가 여러 번 사용됐을 때, let 변수는 여전히 하나라서 문제가 될 수 있습니다. 컴포넌트 인스턴스별로 변수를 관리해야 한다면, useRef 를 사용해야합니다. (글로벌하게 하나의 값만 있어도 된다면, 그리고 JSX 결과물에 영향을 주는 값이 아니라면 문제가 되지 않습니다)

0

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

잘 이해했습니다. 좋은 답변 감사드려요~

아리마님의 프로필 이미지
아리마

작성한 질문수

질문하기