๐ฎ ์ด๊ฒ์ ๊ฒ ๊ณต๋ถ/๐น ๋ฆฌ์กํธ
-
๐น React ๊ณต์๋ฌธ์ ํฑํํ ๊ฒ์ ์ฝ๋ ๐น๐ฎ ์ด๊ฒ์ ๊ฒ ๊ณต๋ถ/๐น ๋ฆฌ์กํธ 2025. 7. 10. 23:13
import { useState } from 'react'; // ๊ฐ ์นธ์ ๋ํ๋ด๋ Square ์ปดํฌ๋ํธfunction Square({ value, onSquareClick }) { return ( {value} );} // ๋ณด๋ ์ ์ฒด ๊ด๋ฆฌํ๋ Board ์ปดํฌ๋ํธfunction Board({ xIsNext, squares, onPlay }) { function handleClick(i) { // i๋ฒ์งธ ์นธ์ ํด๋ฆญํ์ ๋ ํธ์ถ๋๋ ํจ์ if (calculateWinner(squares) || squares[i]) { // ์น์๊ฐ ์ด๋ฏธ ์๊ฑฐ๋, ํด๋น ์นธ์ด ์ด๋ฏธ ์ฑ์์ก์ผ๋ฉด return; } const nextSquares = squares.slice();..
-
๐ฎ REACT ํด๋ ๊ด๋ จ ์ ๋ฆฌ ๐ฎ๐ฎ ์ด๊ฒ์ ๊ฒ ๊ณต๋ถ/๐น ๋ฆฌ์กํธ 2025. 2. 16. 17:16
src/assets/ํด๋import๋ก ๋ถ๋ฌ์์ผ ํจpublic/assets/๋ URL(/assets/ํ์ผ๋ช )์ผ๋ก ์ ๊ทผsrc/components/ํด๋์ฌ๋ฌ ํ์ด์ง์์ ๊ณตํต์ผ๋ก ์ฌ์ฉํ๋ UI ์ปดํฌ๋ํธ ๋ณด๊ด์ปดํฌ๋ํธ๋ค์ ํ์ด์ง์ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํด์ผ ํจsrc/pages/ํด๋๊ฐ Route์ ํด๋นํ๋ ํ์ด์ง ์ ์ฅ๋ณดํต pages/ ์์ ์ปดํฌ๋ํธ๋ components/์ ์ฌ์ฌ์ฉ ์ปดํฌ๋ํธ๋ฅผ ์กฐํฉํด์ ๋ง๋ฆsrc/routes/ํด๋React Router ์ค์ ์ ๋ฐ๋ก ๋ถ๋ฆฌํด์ ๊ด๋ฆฌimport { Routes, Route } from "react-router-dom";import HomePage from "../pages/HomePage";import ProfilePage from "../pages/ProfilePage";export..
-
๐ฎ ์ค์ ํ REACT Hooks 10๊ฐ์ง ๐ฎ๐ฎ ์ด๊ฒ์ ๊ฒ ๊ณต๋ถ/๐น ๋ฆฌ์กํธ 2025. 2. 6. 14:38
๋ ธ๋ง๋์ฝ๋์ ์ค์ ํ REACT Hooka 10๊ฐ์ง ๊ฐ์๋ฅผ ๋ณด๋ฉด์ ์ ๋ฆฌํ์๋ค. useStateํญ์ 2๊ฐ์ value ๊ฐ์ง Array๋ฅผ returnํ๋ค.class component, did mount, render ์ญํ ์ ํ๋ค.// ํจ์ํ ์ปดํฌ๋ํธconst App = () => { const [item, setItem] = useState(1); const incrementItem = () => setItem(item + 1); const decrementItem = () => setItem(item - 1);}// ํด๋์คํ ์ปดํฌ๋ํธclass App extends React.Component { state = { item: 1 } render() { const {item}..