Skip to content

Latest commit

ย 

History

History
63 lines (37 loc) ยท 1.68 KB

React Hook.md

File metadata and controls

63 lines (37 loc) ยท 1.68 KB

React Hook

useState(), useEffect() ์ •์˜


๋ฆฌ์•กํŠธ์˜ Component๋Š” 'ํด๋ž˜์Šคํ˜•'๊ณผ 'ํ•จ์ˆ˜ํ˜•'์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

๊ธฐ์กด์˜ ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” ๋ช‡ ๊ฐ€์ง€ ์–ด๋ ค์›€์ด ์กด์žฌํ•œ๋‹ค.

  1. ์ƒํƒœ(State) ๋กœ์ง ์žฌ์‚ฌ์šฉ ์–ด๋ ค์›€
  2. ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์ง
  3. ๊ด€๋ จ ์—†๋Š” ๋กœ์ง๋“ค์ด ํ•จ๊ป˜ ์„ž์—ฌ ์žˆ์–ด ์ดํ•ด๊ฐ€ ํž˜๋“ฌ

์ด์™€ ๊ฐ™์€ ์–ด๋ ค์›€์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, 'Hook'์ด ๋„์ž…๋˜์—ˆ๋‹ค. (16.8 ๋ฒ„์ „๋ถ€ํ„ฐ)


Hook

  • ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ State์™€ Lifecycle ๊ธฐ๋Šฅ์„ ์—ฐ๋™ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜
  • 'ํด๋ž˜์Šคํ˜•'์—์„œ๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š์œผ๋ฉฐ, 'ํ•จ์ˆ˜ํ˜•'์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

useState

๊ธฐ๋ณธ์ ์ธ Hook์œผ๋กœ ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ํ•ด์•ผํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ๋Š”, set์œผ๋กœ ์ค€ ์ด๋ฆ„์˜ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

const [posts, setPosts] = useState([]); // ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น ๋ฌธ๋ฒ•

useState([]);์™€ ๊ฐ™์ด ( ) ์•ˆ์— ์ดˆ๊ธฐํ™”๋ฅผ ์„ค์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. ํ˜„์žฌ ์˜ˆ์ œ๋Š” ๋นˆ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ๋‘” ์ƒํ™ฉ์ธ ๊ฒƒ์ด๋‹ค.


useEffect

์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง ๋  ๋•Œ๋งˆ๋‹ค ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” Hook

'ํด๋ž˜์Šค' ์ปดํฌ๋„ŒํŠธ์˜ componentDidMount()์™€ componentDidUpdate()์˜ ์—ญํ• ์„ ๋™์‹œ์— ํ•œ๋‹ค๊ณ  ๋ด๋„ ๋œ๋‹ค.

useEffect(() => {
    console.log("๋ Œ๋”๋ง ์™„๋ฃŒ");
    console.log(posts);
});

posts๊ฐ€ ๋ณ€๊ฒฝ๋ผ ๋ฆฌ๋ Œ๋”๋ง์ด ๋˜๋ฉด, useEffect๊ฐ€ ์‹คํ–‰๋œ๋‹ค.



[์ฐธ๊ณ ์ž๋ฃŒ]