๐ useState
๋ฆฌ์กํธ ์ปดํฌ๋ํธ์์ ๋์ ์ธ ๊ฐ์ ์ํ(state)
๋ผ๊ณ ๋ถ๋ฆ
๋๋ค.
์ฌ์ฉ์ ์ธํฐ๋ ์
์ ํตํด ์ปดํฌ๋ํธ์ ์ํ๊ฐ์ด ๋์ ์ผ๋ก ๋ฐ๋ ๊ฒฝ์ฐ์๋ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค.
useState๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ Hook์ด๋ฉฐ, ํจ์ํ ์ปดํฌ๋ํธ์์๋ ๊ฐ๋ณ์ ์ธ ์ํ
๋ฅผ ์ง๋ ์ ์๊ฒ ํด ์ค๋๋ค.
๐ useState ํ์ฉ
import { useState } from 'react';
const Counter = () => {
let [count, setCount] = useState(0);
return(
<div>
<h1> { count } </h1>
<button onClick={() => {setCount(count + 1)}}>+1</button>
<button onClick={() => {setCount(count - 1)}}>-1</button>
</div>
)
};
export default Counter;
useState๋ ์๋จ์ import ๊ตฌ๋ฌธ์ ํตํด ๋ถ๋ฌ์ต๋๋ค.
useState ํจ์์ ํ๋ผ๋ฏธํฐ์๋ ์ํ์ ๊ธฐ๋ณธ๊ฐ์ ๋ฃ์ด ์ค๋๋ค. ํ์ฌ๋ ์นด์ดํฐ์ ๊ธฐ๋ณธ๊ฐ์ 0์ผ๋ก ์ค์ ํ ์ํ์
๋๋ค.
const [์ํ ๊ฐ ์ ์ฅ ๋ณ์, ์ํ ๊ฐ ๊ฐฑ์ ํจ์] = useState(์ํ์ ๊ธฐ๋ณธ๊ฐ);
์ด ํจ์๊ฐ ํธ์ถ๋๋ฉด ๋ฐฐ์ด์ ๋ฐํ
ํฉ๋๋ค.
๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์๋ ์ํ ๊ฐ, ๋ ๋ฒ์งธ ์์๋ ์ํ๋ฅผ ์ค์ ํ๋ ํจ์์
๋๋ค.
์ด ํจ์์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฃ์ด์ ํธ์ถํ๋ฉด ์ ๋ฌ๋ฐ์ ํ๋ผ๋ฏธํฐ๋ก ๊ฐ์ด ๋ฐ๋๊ณ ์ปดํฌ๋ํธ๊ฐ ์ ์์ ์ผ๋ก ๋ ๋๋ง๋ฉ๋๋ค.
๐ useState๋ฅผ ์ฌ๋ฌ ๋ฒ ์ฌ์ฉํ๊ธฐ
ํ๋์ useState ํจ์๋ ํ๋์ ์ํ ๊ฐ๋ง ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์ปดํฌ๋ํธ์์ ๊ด๋ฆฌํด์ผ ํ ์ํ๊ฐ ์ฌ๋ฌ ๊ฐ๋ผ๋ฉด useState๋ฅผ ์ฌ๋ฌ ๋ฒ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
import { useState } from 'react';
const Info = () => {
let [name, setName] = useState('');
let [nickName, setNickName] = useState('');
const onChangeName = (e) => {
setName(e.target.value);
};
const onChangeNickName = (e) => {
setNickName(e.target.value);
};
return(
<div>
<div>
<input value={name} onChange={onChangeName} />
<input value={nickName} onChange={onChangeNickName} />
</div>
<div>
<p>์ด๋ฆ : </p> {name}
<p>๋๋ค์ : </p> {nickName}
</div>
</div>
)
};
export default Info;