์Šค๋ƒ…์ƒท์œผ๋กœ์„œ์˜ State / state ์—…๋ฐ์ดํŠธ ํ
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/React
1. ์Šค๋ƒ…์ƒท์ด๋ž€?state๋Š” ๋ Œ๋”๋ง์ด ๋  ๋•Œ์˜ ๊ฐ’(=์Šค๋ƒ…์ƒท)๋งŒ ๋ณด์—ฌ์ค€๋‹ค๋Š” ๋œป.setState๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ํ•ด๋„, ๊ฐ™์€ ๋ Œ๋”๋ง ์•ˆ์—์„œ๋Š” state ๊ฐ’์ด '๊ณ ์ •'๋˜์–ด ์žˆ๋‹ค.๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด๋„ 1์”ฉ ์ฆ๊ฐ€import { useState } from 'react';export default function Counter() { const [number, setNumber] = useState(0); return ( {number} { setNumber(number + 1); setNumber(number + 1); setNumber(number + 1); }}>+3 );} 2. state ์—…๋ฐ์ดํŠธ ํReact์—์„œ `setState`๋ฅผ..
๋ Œ๋”๋ง ๊ทธ๋ฆฌ๊ณ  ์ปค๋ฐ‹
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/React
๋ฆฌ์•กํŠธ ํ™”๋ฉด ์—…๋ฐ์ดํŠธ, ์„ธ ๋‹จ๊ณ„๋กœ ์ดํ•ดํ•˜๊ธฐ1. ํŠธ๋ฆฌ๊ฑฐ (Trigger)์ƒํƒœ(state)๋‚˜ props๊ฐ€ ๋ฐ”๋€” ๋•Œ(๋ฆฌ๋ Œ๋”) ๋ฆฌ์•กํŠธ๊ฐ€ "ํ™”๋ฉด์„ ๋ฐ”๊ฟ”์•ผ๊ฒ ๋‹ค"๋ผ๊ณ  ์‹ ํ˜ธ๋ฅผ ๋ฐ›๋Š” ์ˆœ๊ฐ„import { useState } from "react";export default function Counter() { const [count, setCount] = useState(0); // 1. ํŠธ๋ฆฌ๊ฑฐ: ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด setCount๊ฐ€ ์‹คํ–‰๋จ → ์ƒํƒœ ๋ณ€๊ฒฝ // 2. ๋ Œ๋”๋ง: Counter ํ•จ์ˆ˜๊ฐ€ ๋‹ค์‹œ ์‹คํ–‰๋จ → ์ƒˆ ์„ค๊ณ„๋„(JSX) ์ƒ์„ฑ // 3. ์ปค๋ฐ‹: ๋ฐ”๋€ ๋ถ€๋ถ„๋งŒ ์‹ค์ œ ํ™”๋ฉด(DOM)์— ์ ์šฉ return ( setCount(count + 1)}> {count} );}์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด `..
useState : ๊ฐ์ฒด
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/React
๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.
(์˜ˆ์ œ๋ฌธ์ œํ’€๊ธฐ) useState : ๋ฐฐ์—ด
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/React
useState ์˜ˆ์ œ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๋ฌธ๋ฒ• ์ตํžˆ๋Š” ์ค‘์ด๋‹ค. ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ํ•˜๋‚˜์”ฉ ํ’€์ด๋ฐฉ๋ฒ•์„ ์ ์–ด๋†“์•˜๋‹ค. ์˜ˆ์ œ๋ฌธ์ œ์˜ํ™” ์ œ๋ชฉ์„ ์ž…๋ ฅํ•˜๊ณ  "์ถ”๊ฐ€" ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด,์˜ํ™” ์ œ๋ชฉ์ด ์•„๋ž˜ ๋ชฉ๋ก์— ์Œ“์ด๊ฒŒ ํ•˜์„ธ์š”.๊ฐ ์˜ํ™” ์˜†์— "์‚ญ์ œ" ๋ฒ„ํŠผ์„ ๋‘๊ณ ,๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น์˜ํ™”๊ฐ€ ๋ชฉ๋ก์—์„œ ์‚ฌ๋ผ์ง€๊ฒŒ ํ•˜์„ธ์š”.import { useState } from "react";export default function Movie() { const [input, setInput] = useState(''); const [movies, setMovies] = useState([]); function handleSubmit(e) { e.preventDefault(); if(input.trim() === '') { alert('์˜ํ™” ์ œ..
useState
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/React
1. useState๋ž€`useState`๋Š” ๋ฆฌ์•กํŠธ์˜ ์ƒํƒœ(state) ๊ด€๋ฆฌ ํ•จ์ˆ˜์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ ๊ฐ’์ด ๋ฐ”๋€Œ๋ฉด ํ™”๋ฉด๋„ ์ž๋™์œผ๋กœ ๋‹ค์‹œ ๊ทธ๋ ค์ง€๊ฒŒ ํ•ด์คŒ`useState` ๋Š” ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ : `[ํ˜„์žฌ๊ฐ’, ๊ฐ’์„๋ฐ”๊พธ๋Š”ํ•จ์ˆ˜]`2. ์ฝ”๋“œ ๊ตฌ์กฐconst [index, setIndex] = useState(0);`index` : ์ƒํƒœ๊ฐ’. ์—ฌ๊ธฐ์—์„œ๋Š” 0์œผ๋กœ ์‹œ์ž‘`setIndex` : index ๊ฐ’์„ ๋ฐ”๊ฟ€ ๋•Œ ์“ฐ๋Š” ํ•จ์ˆ˜`useState(0)` : index์˜ ์ดˆ๊ธฐ๊ฐ’์„ 0์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.3. ์ด ์ฝ”๋“œ๋ฅผ ํ’€์–ด์„œ ์“ฐ๋ฉด/* 1. stateArray๋ณ€์ˆ˜์— ๋‹ด์œผ๋ฉด */const stateArray = useState(0);// stateArray๋Š” [0,ํ•จ์ˆ˜]์ฒ˜๋Ÿผ ๋‘ ๊ฐœ์˜ ๊ฐ’์„ ๊ฐ€์ง„ ๋ฐฐ์—ด์ด๋‹ค.// stateArray -> ํ˜„์žฌ์ƒํƒœ๊ฐ’(์—ฌ๊ธฐ์„œ๋Š”..
ํ๋ฆ„ํŒŒ์•…ํ•ด๋ณด๊ธฐ
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/React
๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.
์ฒซ ๋ฒˆ์งธ ์ปดํฌ๋„ŒํŠธ
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/React
๋”๋ณด๊ธฐ1. ์ปดํฌ๋„ŒํŠธ๋งˆํฌ์—…, CSS, JS๋ฅผ ์•ฑ์˜ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ UI ์š”์†Œ1-1. ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ณด๋‚ด๊ธฐ`export default` ๋Š” ํ‘œ์ค€ JavaScript ๊ตฌ๋ฌธ์œผ๋กœ ๋‚˜์ค‘์— ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.1-2. ํ•จ์ˆ˜ ์ •์˜ํ•˜๊ธฐ`function Profile() {}`์„ ์‚ฌ์šฉํ•˜๋ฉด `Profile`์ด๋ผ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜๋ฅผ ์ •์˜.React ์ปดํฌ๋„ŒํŠธ๋Š” ์ผ๋ฐ˜ JS ํ•จ์ˆ˜์ด์ง€๋งŒ, ์ด๋ฆ„์€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•˜๋ฉฐ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค. 1-3. ๋งˆํฌ์—… ์ถ”๊ฐ€ํ•˜๊ธฐ์ด ์ปดํฌ๋„ŒํŠธ๋Š” `src` ๋ฐ `alt` ์†์„ฑ์„ ๊ฐ€์ง„ ``ํƒœ๊ทธ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. HTML์ฒ˜๋Ÿผ ์ž‘์„ฑ๋˜์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์ด๋ฉฐ,์ด ๊ตฌ๋ฌธ์„ JSX๋ผ๊ณ  ํ•œ๋‹ค.return ;// ๋งˆํฌ์—…์ด ๋ชจ๋‘ returnํ‚ค์›Œ๋“œ์™€ ๊ฐ™์€ ๋ผ์ธ์— ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ด„ํ˜ธ๋กœ ๋ฌถ๋Š”๋‹ค.retu..
props
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/React
๋ฆฌ์•กํŠธ ๊ธฐ๋ณธ ๋ฌธ์„œ์—์„œ ๋ณด์ถฉ ์„ค๋ช…์ด ํ•„์š”ํ•ด ์žฌ์ •๋ฆฌ๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ ๊ฐœ๋…์„ ๋‹ค์žก๊ณ ์ž ํ•œ๋‹ค.https://ko.react.dev/learn/passing-props-to-a-component1. props๋ž€props๋Š” "properties"์˜ ์ค„์ž„๋ง๋กœ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.์ž์‹ ์ปดํฌ๋„ŒํŠธ๋Š” props๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋ฐ›์€ ๊ฐ’์„ ์ฝ๋Š”๋‹ค.props๋Š” ์ฝ๊ธฐ ์ „์šฉ์ด๋‹ค. ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋Š” props ๊ฐ’์„ ์ง์ ‘ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค.2. ์ฝ”๋“œ์—์„œ์˜ props ํ๋ฆ„2-1. ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ : Profile// App.jsexport default function Profile() { return ( .. );}Profile ์ปดํฌ๋„ŒํŠธ๊ฐ€ Avatar ์ปดํฌ๋„ŒํŠธ๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ์‚ฌ์šฉํ•˜๋ฉด์„œ, ๊ฐ..