Written on
·
291
0
강사님 안녕하세요.
초보적인 질문을 하나 드리려고 합니다.
컴포넌트 외부에서 특수사항을 제외하고 let 변수를 사용하면 안되는 것이 맞나요?
저는 컴포넌트가 중복되어 여기 저기 활용될 시, 외부 변수가 공유되는 줄 모르고 있었는데요.
개발을 하면서 먼가 이상해서 확인해보니 let 변수가 바뀌면 다른 곳에서 사용된 동일 컴포넌트에서도
변경된 값이 동일하게 적용되더라고요..
초보적인 문의를 드려 죄송합니다;;
Answer 2
1
안녕하세요
외부에서 정의된 let 변수는 아래와 같은 문제가 있습니다.
1. 만약 해당 변수가 JSX 결과물에 영향을 미친다면, 값이 변경되어도 다시 렌더링된다는 보장이 없어서 문제가 됩니다. 이때는 useState 를 사용해야합니다
2. 같은 컴포넌트가 여러 번 사용됐을 때, let 변수는 여전히 하나라서 문제가 될 수 있습니다. 컴포넌트 인스턴스별로 변수를 관리해야 한다면, useRef 를 사용해야합니다. (글로벌하게 하나의 값만 있어도 된다면, 그리고 JSX 결과물에 영향을 주는 값이 아니라면 문제가 되지 않습니다)
0