Programming/React

[ React ] useState

seulye 2022. 6. 21. 10:45

์ถœ์ฒ˜ : https://react.vlpt.us/basic/07-useState.html

https://react.vlpt.us/basic/09-multiple-inputs.html

 

9. ์—ฌ๋Ÿฌ๊ฐœ์˜ input ์ƒํƒœ ๊ด€๋ฆฌํ•˜๊ธฐ · GitBook

9. ์—ฌ๋Ÿฌ๊ฐœ์˜ input ์ƒํƒœ ๊ด€๋ฆฌํ•˜๊ธฐ ์ง€๋‚œ ํŠœํ† ๋ฆฌ์–ผ์—์„œ ์šฐ๋ฆฌ๋Š” input ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณด์•˜๋Š”๋ฐ์š”, ์ด๋ฒˆ์—๋Š” input ์ด ์—ฌ๋Ÿฌ๊ฐœ์ผ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ์„ 

react.vlpt.us

 

import React, { useState } from 'react';

์ด ์ฝ”๋“œ๋Š” ๋ฆฌ์•กํŠธ ํŒจํ‚ค์ง€์—์„œ useState๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.

 

 

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

const [์ƒํƒœ ๊ฐ’ ์ €์žฅ ๋ณ€์ˆ˜, ์ƒํƒœ ๊ฐ’ ๊ฐฑ์‹  ํ•จ์ˆ˜] = useState(์ƒํƒœ ์ดˆ๊ธฐ ๊ฐ’);

 

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

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

 

์ดˆ๊ธฐ๊ฐ’์ธ 0์—์„œ onIncrease ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ์ด ๋˜๋ฉด number+1๋œ ๊ฐ’์ด set๋˜๊ณ ,

onDecrease ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ์ด ๋˜๋ฉด number-1๋œ ๊ฐ’์ด set๋œ๋‹ค.

 


- ์ข€๋” ๊ณ ๊ธ‰ ๋ฒ„์ „

 

const [inputs, setInputs] = useState({
    name: '',
    nickname: ''
  });

์ดˆ๊ธฐ๊ฐ’์€ ์ด๋ ‡๊ฒŒ๋„ ๋ณ€ํ˜•๋  ์ˆ˜ ์žˆ๋‹ค.

์ฐธ๊ณ ๋กœ Typescript์—์„œ๋Š” useState<boolean>(false);์ด๋Ÿฐ์‹์œผ๋กœ <>๊ด„ํ˜ธ ์•ˆ์— Type์ด ๋“ค์–ด๊ฐ„๋‹ค. 

 

const { name, nickname } = inputs;

 

๊ทธ๋ฆฌ๊ณ  ์ด๋ ‡๊ฒŒ ์ถ”์ถœํ•œ๋‹ค.. ์‹ ์„ธ๊ณ„.. ใ…Žใ…Ž..

inputs์˜ name๊ณผ nickname์„ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์ด๋‹ค..

 

 

const onChange = (e) => {
    const { value, name } = e.target; // ์šฐ์„  e.target ์—์„œ name ๊ณผ value ๋ฅผ ์ถ”์ถœ
    setInputs({
      ...inputs, // ๊ธฐ์กด์˜ input ๊ฐ์ฒด๋ฅผ ๋ณต์‚ฌํ•œ ๋’ค
      [name]: value // name ํ‚ค๋ฅผ ๊ฐ€์ง„ ๊ฐ’์„ value ๋กœ ์„ค์ •
    });
  };