[ React ] useState
μΆμ² : 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 λ‘ μ€μ
});
};