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 둜 μ„€μ •
    });
  };