๐TIL) React ์ฌ๋ฌ ์ธํ ํธํ๊ฒ ๊ด๋ฆฌํ๊ธฐ
์ฌ๋ฌ ์ธํ ๊ด๋ฆฌ๋?
ํฐ ํ๋ก ๋ณด๊ฒ ๋๋ฉด ํ์๊ฐ์
ํ์ด์ง๋ผ๋๊ฐ ์์ฝ ํ๋ ํ์ด์ง๋ค์ ๋ณด๊ฒ ๋๋ฉด ์ธํ์ด๋ ํผ ์ฒ๋ผ ๊ฐ์ ์
๋ ฅํ๋ ์ฐฝ๋ค์ด ์์ฒญ๋๊ฒ ๋ง์ด ์์ต๋๋ค! ๊ทธ๋ด๋ ์ธํ์ ๊ด๋ฆฌํ๊ธฐ์ ์ด๋ค๊ฒ ์ฝ๋์ ์ผ๋ก ํจ์จ์ ์ผ๊น์ ๋ํด ์๊ธฐ๋ฅผ ํด๋ณผ๋ ค๊ณ ํฉ๋๋ค!
State ๋ฅผ ํ๋๋ก!
๋ณดํต ์๋์ฒ๋ผ state
๋ฅผ ์ฌ๋ฌ๊ฐ๋ฅผ ์ ์ธํด ๊ฐ์ ๊ด๋ฆฌ๋ฅผ ํ๊ฒ ๋ ๊ฒ์ด๋ค.
const [ id , setId] = useState('')
const [ pw , setPw] = useState('')
const [ email , setEmail] = useState('')
ํ์ง๋ง ์ธํ์ ๊ด๋ฆฌํด์ผํ state
๊ฐ ๋ ๋ง์์ง๋ฉด ๋ง์์ง์๋ก ์ผ์ผํ ์ ์ธ์ ํด์ค์ผํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์๋๋ฐ
์ด๊ฑฐ๋ฅผ ํ๋์ state
์ ๊ฐ์ฒดํ์ผ๋ก ์ ์ฅ์ด ๊ฐ๋ฅํ๋ค ์์๋ ์๋๋ก!
const [inputs, setInputs] = useState({
id: '',
pw: '',
email: '',
});
์ด๋ฐ์์ผ๋ก inputs
๋ผ๋ ์คํ
์ดํธ ๊ฐ์ ํ๋๋ก ๋ด์์ ๊ด๋ฆฌ๋ฅด ํ ์ ์์ต๋๋ค.
ํจ์๋ ํ๋๋ก??
๋ณดํต ํจ์๋ ์๋์ฒ๋ผ ํ๋์ฉ ๋ค ์ ์ธ์ ํด์ ์ฌ์ฉํ์๊ฑฐ๋ค.
const handleId = e => {
setId(e);
};
const handlePw = e => {
setPw(e);
};
const handleEmail = e => {
setEmail(e);
};
ํ์ง๋ง ์๋์ฒ๋ผ name
๊ณผ value
๋ฅผ ์ด์ฉํด ํ๋์ ํจ์๋ก ์ฌ๋ฌ state
๋ฅผ ์ปจํธ๋กค ๊ฐ๋ฅํ๋ค!
์ปจํธ๋กค์ ํ๊ธฐ์ํด์ ์ธํ, ํผ ์์ name ์ด๋ผ๋ ์์ฑ์ ๋ถ์ฌํด์ฃผ์ด์ผํ๋ค.
<input type=text name=id onChange={handleInput}/>
<input type=text name=pw onChange={handleInput}/>
<input type=text name=email onChange={handleInput}/>
const handleInput = e => {
const { value, name } = e.target;
setInputs({
...inputs,
[name]: value,
});
};
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐TIL) React ์ฌ๋ฌ ์ธํ ํธํ๊ฒ ๊ด๋ฆฌํ๊ธฐ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@xodid157/TIL-React-์ฌ๋ฌ-์ธํ-ํธํ๊ฒ-๊ด๋ฆฌํ๊ธฐ์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค