Skip to content

Latest commit

ย 

History

History
63 lines (55 loc) ยท 2.45 KB

useState์ •๋ฆฌ.md

File metadata and controls

63 lines (55 loc) ยท 2.45 KB

useState๋Š” ์–ธ์ œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

  • ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ณด์—ฌ์ค˜์•ผ ํ•˜๋Š” ๋‚ด์šฉ์ด ์‚ฌ์šฉ์ž ์ธํ„ฐ๋ž™์…˜์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ๋ฐ”๋€Œ์–ด์•ผํ•  ๋•Œ useState๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๋ฆฌ์•กํŠธ ์ด์ „ ๋ฒ„์ „(16.8์ด์ „)์—์„œ๋Š” ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ์—†์—ˆ๋Š”๋ฐ, 16.8๋ฒ„์ „ ์ดํ›„๋ถ€ํ„ฐ Hooks๋ผ๋Š” ๊ธฐ๋Šฅ์ด ๋„์ž…๋˜์–ด์„œ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • useStateํ•จ์ˆ˜๋„ Hooks ์ค‘ ์ผ๋ถ€์ด๋‹ค.

exercise 1 : ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ˆซ์ž๊ฐ€ ๋ฐ”๋€Œ๋Š” Counter ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค๊ธฐ

import React from 'react';

function Counter() {
  const onIncrease = () => {
    console.log('+1')
  }
  const onDecrease = () => {
    console.log('-1');
  }
  return (
    <div>
      <h1>0</h1>
      <button onClick={onIncrease}>+1</button>
      <button onClick={onDecrease}>-1</button>
    </div>
  );
}

export default Counter;
  • ๋ฆฌ์•กํŠธ์—์„œ ์—˜๋ฆฌ๋จผํŠธ์— ์ด๋ฒคํŠธ๋ฅผ ์„ค์ •ํ•˜๊ธฐ -> on์ด๋ฒคํŠธ์ด๋ฆ„={์‹คํ–‰ํ•˜๊ณ ์‹ถ์€ํ•จ์ˆ˜} ํ˜•ํƒœ๋กœ ์„ค์ •ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฃผ์˜ํ•  ์  : ํ•จ์ˆ˜ํ˜•ํƒœ๋ฅผ ๋„ฃ์–ด์ฃผ์–ด์•ผ ํ•˜์ง€, ํ•จ์ˆ˜๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํ–‰ํ•˜์ง€ ๋ง ๊ฒƒ -> ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๊ฒŒ ์„ค์ •ํ•˜์ง€ ๋ง ๊ฒƒ (์ž˜๋ชป๋œ ์˜ˆ : onClick={onIncrease()})
    • ๋ Œ๋”๋ง๋˜๋Š” ์‹œ์ ์—์„œ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ
    • ํด๋ฆญํ•  ๋•Œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์•ผํ•˜๋Š”๋ฐ ๋ Œ๋”๋ง ํ•  ๋•Œ ํ˜ธ์ถœํ•ด๋ฒ„๋ฆฌ๋ฉด ๋ฒ„ํŠผ์ด ์˜๋ฏธ๋„ ์—†์–ด์ง€๊ณ , ์˜๋„์™€ ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๊ฒŒ ๋œ๋‹ค.
import React, { useState } from 'react';

function Counter() {
  const [number, setNumber] = useState(0);

  const onIncrease = () => {
    setNumber(number + 1);
  }

  const onDecrease = () => {
    setNumber(number - 1);
  }

  return (
    <div>
      <h1>{number}</h1>
      <button onClick={onIncrease}>+1</button>
      <button onClick={onDecrease}>-1</button>
    </div>
  );
}

export default Counter;
  • const [number, setNumber] = useState(0);๋กœ ๋™์ ์ธ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.
  • import React, { useState } from 'react'; : ๋ฆฌ์•กํŠธ์—์„œ useStateํ•จ์ˆ˜๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.
  • useStateํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์—๋Š” ๊ธฐ๋ณธ๊ฐ’์„ ๋„ฃ์–ด์ค€๋‹ค. -> ๊ธฐ๋ณธ๊ฐ’์„ 0์œผ๋กœ ํ•˜๊ณ  ์‹ถ์œผ๋ฉด useState(0)์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.
  • ์ด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์ฃผ๋ฉด ๋ฐฐ์—ด์ด ๋ฐ˜ํ™˜๋œ๋‹ค -> ์—ฌ๊ธฐ์„œ ์ฒซ๋ฒˆ์งธ ์›์†Œ๋Š” ํ˜„์žฌ ์ƒํƒœ, ๋‘๋ฒˆ์งธ ์›์†Œ๋Š” Setter ํ•จ์ˆ˜๋‹ค.

๋ฐฐ์—ด๋น„๊ตฌ์กฐํ™”ํ• ๋‹น์ด๋ž€?

Reference