๋ฆฌ์กํธ ํต์ฌ 1 .
๋ง์ฝ ๋ณํํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋๋ฐ ๊ทธ ๋ณํํ๋ ๋ฐ์ดํฐ๊ฐ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๋ฐ์๋์ด์ผ ํ๋ค๋ฉด state๊ฐ ํ์ํ๋ค.
์๋๋ฉด ์ผ๋ฐ์ ์ธ ๋ณ์๋ ์ํํ์ง ์์ง๋ง state๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ์ ์ค์ ํ๊ณ ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ฆฌ๊ณ state๊ฐ ๋ฐ๋๋ฉด ๋ฆฌ์กํธ๋ ๊ทธ state๊ฐ ๋ฑ๋ก๋ ์ปดํฌ๋ํธ๋ฅผ ์ฌํ๊ฐํ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ ๋นผ๊ณ ๊ทธ ์ปดํฌ๋ํธ๋ง ์ฌํ๊ฐํ ๊ฒ์ด๋ค. state๊ฐ ๋ฑ๋ก๋ ๊ทธ ์ปดํฌ๋ํธ๋ง!!
๋ฆฌ์กํธ ํต์ฌ 2 .
๋ฆฌ์กํธ๋ ์ปดํฌ๋ํธ ๋ณ ์ธ์คํด์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด์ ๋ ๋ฆฝ์ ์ธ state๋ฅผ ๊ฐ๋๋ค.
1. ๊ฐ์ฅ ์ผ๋ฐ์ ์ useState ์ฌ์ฉ๋ฒ
const ExpenseForm = () => {
const [enteredTitle, setEnteredTtile] = useState('');
const [enteredAmount, setEnteredAmount] = useState('');
const [enteredDate, setEnteredDate] = useState('');
const titleChangeHandler = (e) => {
setEnteredTitle(event.target.value);
}
const amountChangeHandler = (e) => {
setEnteredAmount(event.target.value);
}
const dateChangeHandler = (e) => {
setEnteredDate(event.target.value);
}
}
2. ๋ ๋ฆฝ์ ์ธ state๊ฐ ์๋๋ผ ํ ๊ฐ์ state์ฒ๋ผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ
const ExpenseForm = () => {
const [userInput, setUserInput]= useState({
enteredTitle:'',
enteredAmount:'',
enteredDate:''
})
const titleChangeHandler = (e) => {
setUserInput({...userInput,enteredTitle : event.target.value});
}
const amountChangeHandler = (e) => {
setUserInput({...userInput,enteredAmount : event.target.value});
}
const dateChangeHandler = (e) => {
setUserInput({...userInput,enteredDate : event.target.value});
}
}
๐ 3๊ฐ์ ๋
๋ฆฝ์ ์ธ state๊ฐ ์๋๋ผ ํ ๊ฐ์ state์ฒ๋ผ ๊ด๋ฆฌํ ์ ์๋ค.
์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ๊ณผ์ ์ฐจ์ด์ :state๋ฅผ ์
๋ฐ์ดํธํ ๋๋ง๋ค ํ ๊ฐ๊ฐ ์๋๋ผ ์ด ์ธ ํ๋กํผํฐ ๋ชจ๋๋ฅผ ์
๋ฐ์ดํธ ํด์ผํ๋ค๋ ์ !!
๋ง์ฝ ํ๋์ฉ ์ฆ๊ฐํ๋ ์นด์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ ์๋ค๋ฉด ์ํ๋ฅผ ์ ๋ฐ์ดํธํ ๋๋ง๋ค ์ ์์ฒ๋ผ ์ฐ๋ฉด ์๋๋ค. ์ํ๋ฅผ ์ ๋ฐ์ดํธํ๋ ํจ์๋ฅผ ์ํ ๋์ฒด ํผ์ ์ฌ์ฉํด์ผํ๋ค. ๐๐
3. ๋ ๋ฆฝ์ ์ธ state๊ฐ ์๋๋ผ ํ ๊ฐ์ state์ฒ๋ผ ๊ด๋ฆฌํ๋๋ฐ, ์ํ ์ ๋ฐ์ดํธ๊ฐ ์ด์ ์ํ์ ์์กดํ๊ณ ์์ผ๋ฉด ์ด ํจ์ ํผ ์ฌ์ฉํ๊ธฐ
const ExpenseForm = () => {
const [userInput, setUserInput]= useState({
enteredTitle:'',
enteredAmount:'',
enteredDate:''
})
const titleChangeHandler = (e) => {
setUserInput((prevState) => {
return {...prevState, enteredTitle : event.target.value}
});
}
const amountChangeHandler = (e) => {
setUserInput((prevState) => {
return {...prevState, enteredAmount : event.target.value}
});
}
const dateChangeHandler = (e) => {
setUserInput((prevState) => {
return {...prevState, enteredDate : event.target.value}
});
}
}
๐ ๋ฆฌ์กํธ๊ฐ ์ํ ์
๋ฐ์ดํธ ์ค์ผ์ค์ ๊ฐ์ง๊ณ ์์ด์ ๋ฐ๋ก ์คํํ์ง ์๋๋ค๊ณ ๋งํ ๊ฒ์ ๊ธฐ์ตํด ๋์!!
๊ทธ๋์ ์ด๋ก ์ ์ผ๋ก ๋์์ ์๋ง์ ์ํ ์
๋ฐ์ดํธ๋ฅผ ๊ณํํ๋ค๋ฉด ์ค๋๋์๊ฑฐ๋ ์๋ชป๋ ์ํ ์ค๋
์ท์ ์์กดํ ์๋ ์๋ค. ๊ทธ๋์ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค๋ฉด, ๋ฆฌ์กํธ๋ ์ด ์์ ์๋ ํจ์์์ ์ด ์ํ ์ค๋
์ท์ด ๊ฐ์ฅ ์ต์ ์ํ์ ์ค๋
์ท์ด๋ผ๋ ๊ฒ๊ณผ ํญ์ ๊ณํ๋ ์ํ ์
๋ฐ์ดํธ๋ฅผ ์ผ๋์ ๋๊ณ ์๋ค๋ ๊ฒ์ ๋ณด์ฅํ๋ค.
์ํ ์ ๋ฐ์ดํธ๊ฐ ์ด์ ์ํ์ ์์กดํ๊ณ ์์ผ๋ฉด 3๋ฒ ํผ ์ฌ์ฉํ๊ธฐ