onChange?
- ์์ฑํ JS๋ฅผ ํตํด ๋ณํ๊ฐ ์ผ์ด๋ฌ๋์ง ๊ฐ์ง
- input ํ๊ทธ์ ํฌ์ปค์ค๋ฅผ ๋ฒ์ด๋ฌ์๋ (์ฆ, ์
๋ ฅ์ด ๋๋ฌ์๋) ๋ฐ์
- cf.onInput()
- input ํ๊ทธ ์์ ๊ฐ๋ค์ด ๋ณ๊ฒฝ ๋ ๋๋ง๋ค ์ด๋ฒคํธ๊ฐ ๋ฐ์
- cf.onInput()
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input id="input" type="text" onchange="myFunction()">
</body>
<script>
function myFunction(){
let value = document.getElementById('input').value;
console.log(value);
}
</script>
</html>
React์์ input์ onChange ํ ๋ฒ์ ๊ด๋ฆฌํ๊ธฐ
- ๋ก๊ทธ์ธ, ํ์๊ฐ์ ํ์ด์ง ๊ตฌํ์ ์ฌ๋ฌ๊ฐ์ input์ ๊ด๋ฆฌ
- ์ด๋ฅผ ๋ชจ๋ ๋ค๋ฅธ state๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ ์ฝ๋๊ฐ ๋๋ฌด ๋ณต์กํด์ง!
//๊ฐ๊ฐ์ state๋ก ๊ด๋ฆฌ ์
import React,{useState} from'react'
export default function App(){
const [id,setId] = useState('')
const [pw,setPw] = useState('')
const [nickname,setNickname] = useState('')
const [person,setPerson] = useState('')
const handleIdChange = (e) => {
setPerson({ ...person, id: e.target.value });
};
const handlePwChange = (e) => {
setPerson({ ...person, pw: e.target.value });
};
const handleNicknameChange = (e) => {
setPerson({ ...person, nickname: e.target.value });
};
return(
<div className="App">
<section>
<div>
<label>ID</label>
<input
value={id}
onChange={handleIdChange}>
</input>
</div>
<div>
<label>PW</label>
<input
value={pw}
onChange={handlePwChange}>
</input>
</div>
<div>
<label>Nickname</label>
<input
value={nickname}
onChange={handleNicknameChange}>
</input>
</div>
</section>
</div>
)
}
- ํ๋์ state๋ฅผ ๊ฐ์ฒด๋ก ์ฌ์ฉํ๋ฉด ์ด๋ฅผ ํด๊ฒฐ
- input๋ง๋ค ๊ฐ์ฒด์ property key์ ๋ง๋ name ํ๋กํผํฐ๋ฅผ ๋ฃ์ด์ฃผ๊ณ , onChange์ ๋๊ฒจ์ค ํจ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ฒ์ฉ์ฑ์ด ์๋๋ก ์์
import React,{useState} from'react'
export default function App(){
const [person,setPerson] = useState({
id:'',
pw:'',
nickname:''
})
const handleOnChange = (e) => {
setPerson({ ...person, [e.target.name]: e.target.value });
};
/*
//๋ค๋ฅธ ๋ฐฉ๋ฒ - ๊ตฌ์กฐ๋ถํด ํ ๋น ํ์ฉ
const {id,pw,nickname} = inputs
cont handleOnChange = (e) => {
const {value,name} = e.target
setPerson({
...person,
[name]:value
})
}
*/
return(
<div className="App">
<section>
<div>
<label>ID</label>
<input
name="id"
value={person.id}
onChange={handleIdChange}>
</input>
</div>
<div>
<label>PW</label>
<input
name="pw"
value={person.pw}
onChange={handlePwChange}>
</input>
</div>
<div>
<label>Nickname</label>
<input
name="nickname"
value={person.nickname}
onChange={handleNicknameChange}>
</input>
</div>
</section>
</div>
)
}
Reference
useState๋ฅผ ์ด์ฉํ ์ฌ๋ฌ ๊ฐ์ input ์ํ ๊ด๋ฆฌ์ ๋ถ๋ณ์ฑ
React(๋ฆฌ์กํธ): input ์ํ ๊ด๋ฆฌํ๊ธฐ, input ์ฌ๋ฌ ๊ฐ
[React] input ์ํ ๊ด๋ฆฌํ๊ธฐ(useState / onChange ์ด์ฉ)
'Language > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] async / await 2 (0) | 2023.01.26 |
---|---|
[JavaScript] async / await 1 (1) | 2023.01.25 |
[JavaScript] Event-onFocus, onBlur (0) | 2023.01.20 |
[JavaScript] ๋น๋๊ธฐ (0) | 2023.01.17 |
[JavaScript] API (0) | 2023.01.16 |
๋๊ธ