Frontend 프론트엔드
[ 10 ] useState 없이 직접 DOM 조작하기, useState사용하기
박민우_
2024. 6. 11. 09:21
useState없이 직접 DOM을 조작하는 방법
단점 : 모든 상태마다 ID를 설정해줘야 하므로 복잡한 페이지일수록 사용하기 어렵다.
export default function CounterLetDocumentPage() {
function onClickCountUp() {
const count = Number(document.getElementById("qqq").innerText) + 1;
document.getElementById("qqq").innerText = count;
}
function onClickCountDown() {
const count = Number(document.getElementById("qqq").innerText) - 1;
document.getElementById("qqq").innerText = count;
}
return (
<div>
<div id="qqq">0</div>
<button onClick={onClickCountUp}>카운트 올리기!</button>
<button onClick={onClickCountDown}>카운트 내리기!</button>
</div>
);
}
useState 상태변수 사용하기
ID관리 없이 간편하게 상태를 관리할 수 있다
import { useState } from "react";
export default function CounterLetDocumentPage() {
const [count, setCount] = useState(0);
function onClickCountUp() {
setCount(count + 1);
}
function onClickCountDown() {
setCount(count - 1);
}
return (
<div>
<div id="qqq">{count}</div>
<button onClick={onClickCountUp}>카운트 올리기!</button>
<button onClick={onClickCountDown}>카운트 내리기!</button>
</div>
);
}
useState를 이용한 상태변수가 아니라 일반 let, var 로 선언한 변수는 안될까 ??
변수를 사용하게 되면 변수의 값이 바뀌어도 리액트가 변경을 감지하지 못하고, 그래서 리렌더링 요청을 하지 않기 때문에 화면에 변경사항이 나타나지 않게 된다.
728x90