<!-- HTML -->
<div id="message">안녕하세요</div>
<button id="button">변경</button>
<!-- JavaScript -->
<script>
const message = document.querySelector("#message");
const button = document.querySelector("#button");
button.addEventListener("click", () => {
message.textContent = "변경됨!";
});
</script>
"use client";
import { useState } from "react";
export default function TextChange() {
const [message, setMessage] = useState("안녕하세요");
return (
<div>
<div>{message}</div>
<button onClick={() => setMessage("변경됨!")}>변경</button>
</div>
);
}
💡 버튼을 클릭하면 "변경됨!"으로 바뀝니다
querySelector →
useState
addEventListener →
onClick
<!-- HTML -->
<div id="box">숨길 수 있는 박스</div>
<button id="button">토글</button>
<!-- JavaScript -->
<script>
const box = document.querySelector("#box");
const button = document.querySelector("#button");
button.addEventListener("click", () => {
const isHidden = box.hasAttribute("hidden");
if (isHidden) {
box.removeAttribute("hidden");
} else {
box.setAttribute("hidden", "");
}
});
</script>
"use client";
import { useState } from "react";
export default function Toggle() {
const [isHidden, setIsHidden] =
useState(false);
return (
<div>
<div hidden={isHidden}>숨길 수 있는 박스</div>
<button onClick={() => setIsHidden(!isHidden)}>
토글
</button>
</div>
);
}
💡 버튼을 클릭하면 박스가 나타났다 사라집니다
setAttribute/removeAttribute
→
hidden={isHidden}
!isHidden → 토글
<!-- HTML -->
<div id="display">0</div>
<button id="decrease">-</button>
<button id="reset">0</button>
<button id="increase">+</button>
<!-- JavaScript -->
<script>
let count = 0;
const display = document.querySelector("#display");
document.querySelector("#increase").addEventListener("click", () => {
count++;
display.textContent = count;
});
document.querySelector("#decrease").addEventListener("click", () => {
count--;
display.textContent = count;
});
document.querySelector("#reset").addEventListener("click", () => {
count = 0;
display.textContent = count;
});
</script>
"use client";
import { useState } from "react";
export default function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<div>{count}</div>
<button onClick={() => setCount(count - 1)}>-</button>
<button onClick={() => setCount(0)}>0</button>
<button onClick={() => setCount(count + 1)}>+</button>
</div>
);
}
💡 버튼을 클릭하면 숫자가 증가/감소/초기화됩니다
let count + display.textContent
→
useState(0)
| Session 4 (순수 DOM) | Session 5 (React) |
|---|---|
querySelector
|
useState
|
addEventListener
|
onClick
|
textContent
|
{변수}
|
classList.toggle
|
조건부 렌더링 |
| 수동 렌더링 | 자동 렌더링 |