강의

멘토링

로드맵

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

dlgydlf12345님의 프로필 이미지
dlgydlf12345

작성한 질문수

웹 게임을 만들며 배우는 React

4-4. 반응속도체크 Hooks로 전환하기

hooks timer, startTime, endTimer 질문입니다.

작성

·

170

2

let timer = 0;
let startTime = 0;
let endTIme = 0;

const ResponseCheck = () => {
  const [statesetState] = useState("waiting");
  const [messagesetMessage] = useState("클릭해서 시작하세요");
  const [resultsetResult] = useState([]);

class -> hooks로 변환시 저 스스로 먼저 해보고 현영님 강의를 봤는데요, class처럼 내부에 선언되면 hooks는 컴포넌트 자체가 재실행되니까 내부에 선언하면 안되는구나 라고 생각하고 위의 코드처럼 컴포넌트 바깥으로 선언을 해줬는데요. 결과는 잘 돌아가더라구요.

useRef로 하는 것과 저렇게 바깥에 선언하는 차이가 있나요?

결과의 차이라던지, 성능의 차이라던지...

퀴즈

44%나 틀려요. 한번 도전해보세요!

React JSX에서 특정 조건을 만족할 때만 요소를 렌더링하려면 어떻게 해야 할까요?

`if (condition) { return <Element />; }` 와 같이 if 문을 직접 사용한다.

`condition && <Element />` 또는 `condition ? <Element /> : null` 과 같은 표현식을 사용한다.

`<Element if={condition} />` 와 같이 if 속성을 사용한다.

별도의 HTML 파일에 조건을 분리하여 작성한다.

답변 1

4

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

ResponseCheck라는 컴포넌트를 여러개 동시에 사용하는 경우 저렇게 컴포넌트 바깥에 변수로 선언해두면 문제가 됩니다. 그래서 컴포넌트 안에 useRef로 만들어두어서 그 컴포넌트 소속임을 확실하게 보여주는 것입니다.

dlgydlf12345님의 프로필 이미지
dlgydlf12345

작성한 질문수

질문하기