ํ•จ์ˆ˜ํ˜• ์—…๋ฐ์ดํŠธ
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/React
๋จธ๋ฆฌํ„ฐ์ง๐Ÿคฏ ๋ด๋„๋ด๋„ ์ฒ˜์Œ๋ณธ๋‹จ๋ง์ด์ง€.. ์™œ ์ด๋ ‡๊ฒŒ ๋˜๋Š”์ง€ ๊ณ„์† ํŒŒ๊ธฐ.. ํ•จ์ˆ˜ํ˜• ์—…๋ฐ์ดํŠธ๋ž€?React์˜ useState(๋˜๋Š” ํด๋ž˜์Šคํ˜•์˜ setState)์—์„œ ํ•จ์ˆ˜ํ˜• ์—…๋ฐ์ดํŠธ(functional update)๋Š”์ƒํƒœ ๋ณ€๊ฒฝ์‹œ ์ตœ์‹  ์ƒํƒœ(prevState)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ ๊ฐ’์„ ๊ณ„์‚ฐํ•ด ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.ํŠนํžˆ ์—ฌ๋Ÿฌ ๋ฒˆ ์—ฐ์†๋œ ์—…๋ฐ์ดํŠธ, ์ด์ „ ์ƒํƒœ์— ์˜์กดํ•˜๋Š” ๋กœ์ง์—์„œ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋™์ž‘ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ถŒ์žฅ๋œ๋‹ค.setState(prevState => ์ƒˆ์ƒํƒœ)`prevState`: ํ˜„ ์‹œ์ ์—์„œ ๊ฐ€์žฅ ์ตœ์‹ ์˜ ์ƒํƒœ ๊ฐ’.์ด๋ฅผ ํ™œ์šฉํ•ด์„œ ์ƒˆ๋กœ์šด ์ƒํƒœ ๊ฐ’ ๊ณ„์‚ฐํ•ด ๋ฐ˜ํ™˜. ํ•จ์ˆ˜ํ˜• ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ React์˜ ์ƒํƒœ ์—…๋ฐ์ดํŠธ๋Š” *๋น„๋™๊ธฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ์ƒํƒœ ๋ณ€ํ™”๋ฅผ ํ•œ ๋ฒˆ์— ๋ฌถ์–ด ์ฒ˜๋ฆฌํ•  ๋•Œ, ์ด์ „ ์ƒํƒœ ๊ฐ’์„ ์ง์ ‘ ์ฐธ์กฐํ•˜๋ฉด ์ตœ์‹  ๊ฐ’์ด ..
๋งจ๋‚  ์žŠ๋Š”๊ฑฐ (๊ทธ๋ƒฅ ์™ธ์›Œ๋ฒ„๋ฆฌ๊ธฐ)
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/React
๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.
์ดํ•ดํ•ด๋ณด๊ธฐ!!!!!
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/React
๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.
๋ฐฐ์—ด ํ๋ฆ„ ๋ถ„์„ํ•˜๊ธฐ
ยท
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/React
1. ์ƒํƒœ์™€ ๋ณ€์ˆ˜ ์„ ์–ธconst [input, setInput] = useState('');const [todos, setTodos] = useState([]);const [showWarning, setShowWarning] = useState(false);const index = useRef(0);`input` : ์ž…๋ ฅ์ฐฝ์— ์ž…๋ ฅ๋œ ํ…์ŠคํŠธ๋ฅผ ์ €์žฅ`setInput` : input ์ƒํƒœ๋ฅผ ๋ฐ”๊ฟ”์ฃผ๋Š” ํ•จ์ˆ˜`todos` : ํ•  ์ผ ๋ชฉ๋ก์„ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด(์˜ˆ: `{id: 0, add: "๊ณต๋ถ€ํ•˜๊ธฐ"}`)`setTodos` : todos ์ƒํƒœ๋ฅผ ๋ฐ”๊ฟ”์ฃผ๋Š” ํ•จ์ˆ˜`showWarning` : ๊ฒฝ๊ณ  ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด์—ฌ์ค„์ง€ ์—ฌ๋ถ€(true/false)`setShowWarning` : showWarning ์ƒํƒœ๋ฅผ ๋ฐ”๊ฟ”์ฃผ๋Š” ํ•จ์ˆ˜`index`..
์Šค๋ƒ…์ƒท์œผ๋กœ์„œ์˜ 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('์˜ํ™” ์ œ..