[React] Props & State

ยท

2 min read

Hook

Hook = ๊ฐˆ๊ณ ๋ฆฌ ๐Ÿช

ํŠน์ง•

  • hook ์€ class component์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ state๊ด€๋ฆฌ์™€ lifecycle๊ด€๋ฆฌ๊ธฐ๋Šฅ์„ function component์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก hook in(์—ฐ๋™) ํ•ด์ฃผ๋Š” function ์„ ์˜๋ฏธํ•˜๋ฉฐ, ์ด๋Ÿฌํ•œ hook๋“ค์˜ ๋ชจ์Œ์„ hooks๋ผ๊ณ  ํ•œ๋‹ค.

  • hook์€ class component์— ์žˆ๋Š” ๊ธฐ๋Šฅ์„ function component์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๊ฐœ๋…์ด๊ธฐ ๋•Œ๋ฌธ์— only function component์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ!

  • hook์˜ ์ด๋ฆ„์€ ๋ฐ˜๋“œ์‹œ use-๋กœ ์‹œ์ž‘

  • React์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‚ด์žฅ hook์ด ์กด์žฌ useState, useEffect ... )

  • ๋‚ด์žฅ hook์€ ์™ธ๋ถ€ library๋ฅผ installํ•˜์ง€ ์•Š์•„๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

    • Customs hook : ์ง์ ‘ hook์„ create

์‚ฌ์šฉ ๊ทœ์น™

  1. hook์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ -> function component ๋‚ด๋ถ€ & custom hook ๋‚ด๋ถ€ (์œ„์˜ 2 ๊ณณ์„ ์ œ์™ธํ•˜๊ณ ๋Š” hook ํ˜ธ์ถœ ๋ถˆ๊ฐ€)

  2. hook์€ ํ•ญ์ƒ function component ๋‚ด์˜ ์ตœ์ƒ์œ„at the top level)์—์„œ๋งŒ ํ˜ธ์ถœํ•ด์•ผํ•จ (๋ฐ˜๋ณต๋ฌธ, ์กฐ๊ฑด๋ฌธ ๋“ฑ ์ค‘์ฒฉ๋œ function ๋‚ด์—์„œ๋Š” hook ํ˜ธ์ถœ ๋ถˆ๊ฐ€)
    (function์—์„œ์˜ ์ตœ์ƒ์œ„)

// useState Hook์„ ์ตœ์ƒ์œ„์—์„œ ํ˜ธ์ถœ
// Test.js

import React, { useState } from 'react';

const Test = () => {
  const [color, setColor] = useState('red');

  if (5 > 3) {
    console.log('true');
  }

  return <div>Hello!</div>;
};

export default Test;

Props

component์˜ ์†์„ฑ๊ฐ’(property)
-> parent component๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ง€๋‹ˆ๊ณ  ์žˆ๋Š” Object

  • ์ „๋‹ฌํ•˜๊ณ ์ž ํ•˜๋Š” ์–ด๋–ค ๊ฐ’์ด๋“  ์ž์‹ ์ปดํฌ๋„ŒํŠธ์— ์ „๋‹ฌ ๊ฐ€๋Šฅ
    -> text, number, variables, function

State

component๋‚ด๋ถ€์— ๊ฐ€์ง€๊ณ  ์žˆ๋Š” component์˜ ์ƒํƒœ๊ฐ’
ํ•ด๋‹น component๊ฐ€ UI์— ๋ณด์—ฌ์ค„ ์ •๋ณด๋ฅผ ๊ฒฐ์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๊ฐ’
component๋‚ด์—์„œ ์ •์˜ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋ฉฐ ์–ผ๋งˆ๋“ ์ง€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

  • useState์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ์ธ state ๋ฅผ ํ†ตํ•ด ๋™์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค.
  • useState์˜ ๋‘ ๋ฒˆ์งธ ์š”์†Œ์ธ setState ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด state ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ๋‹ค.
ย