const Register = () =>{
return <div>register</div>;
};
export default Register;
import "./App.css";
import Register from "./components/Register";
function App() {
return (
<>
<Register/>
</>
);
}
export default App;
const Register = () =>{
const [name, setName] = useState(""); // ("") : λΉ λ¬Έμμ΄
const onChangeName = (e) => {
console.log(e);
}
return (
<div>
<input onChange={onChangeName} placeholder={"μ΄λ¦"}/>
</div>)
};
βοΈ logμμ νμΈν μ μλ λ΄μ©
: inputμ μ¬μ©μκ° μ λ ₯ν κ°μ νμΈν μ μλ€.
β‘οΈ μ¦, inputμ μ μ₯λμ΄μλ κ°μ΄ Valueμ 보κ΄λμ΄μλ€.
βοΈ onChange λ?
: HTML νΌ μμμμ μ¬μ©μκ° μ λ ₯κ°μ λ³κ²½νμ λ μ€νλλ React μ΄λ²€νΈ
: μ£Όλ‘ input, textarea, select λ±μ κ°μ΄ λ³κ²½λ λ μ¬μ©
const onChangeName = (e) => {
setName(e.target.value);
}
return (
<div>
<input onChange={onChangeName} placeholder={"μ΄λ¦"}/><br></br>
{name}
</div>
)
μ΄λ κ² μ μ₯λμ΄ μλ κ°μ setNameμ λ£μ΄μ£Όλ©΄ μ λ ₯ν ν μ€νΈλ₯Ό μ λ¬ν΄μ μ΅μ’ μ μΌλ‘ μ΄ name Stateμ μ λ ₯ν κ°λ€μ΄ λ°λ‘λ°λ‘ μ μ₯μ΄ λλ€.
{name} μ λ£μ΄μ£Όλ©΄ μ΄κΈ°κ° μ€μ μλ£const Register = () =>{
const [name, setName] = useState("μ΄λ¦");
const onChangeName = (e) => {
setName(e.target.value);
}
return (
<div>
<input value={name}
onChange={onChangeName}
placeholder={"μ΄λ¦"}/>
<br></br>
{name}
</div>)
};
<input type="date" />
: date picker κ° λ λλ§λλ€. (λ€λ₯Έ λΈλΌμ°μ μμλ λ€λ₯΄κ² λ λλ§μ΄ λ μλ μλ€.)
const [birth, setBirth] = useState("");
const onChangeBirth = (e) => {
setBirth(e.target.value);
}
return (
<div>
<div>
<input value={name}
onChange={onChangeName}
placeholder={"μ΄λ¦"}/>
</div>
<div>
<input type="date" value={birth} onChange={onChangeBirth}/>
{birth}
</div>
</div>
)
βοΈ μ¬κΈ°μ λ΄ κΆκΈμ¦ : birthλ μ΄κΈ°κ°μ΄ μλλ° value={birth}λ₯Ό λ°λκ±°μ§?]
: value μμ±μ birth μνλ₯Ό μ°κ²°νλ μ΄μ λ Reactμμ νΌ μμμ μνμ μ»΄ν¬λνΈλ₯Ό λκΈ°ν(μλ°©ν₯ λ°μ΄ν° λ°μΈλ©)νκΈ° μν¨
- μλ°©ν₯ λ°μ΄ν° λ°μΈλ© : μνμ μ λ ₯ νλμ κ°μ΄ μλ‘ μμ‘΄ κ΄κ³λ₯Ό κ°μ§λ κ²
- μ¬μ©μκ° μ λ ₯νλμμ κ°μ λ³κ²½νλ©΄ μνκ° μ λ°μ΄νΈλκ³ , μνκ° μ λ°μ΄νΈ λλ©΄ μ λ ₯νλμ κ°λ μλμΌλ‘ λ³κ²½λ¨ β‘οΈ μ λ ₯ νλμ κ°κ³Ό React μνλ₯Ό μΌκ΄λκ² μ μ§ν μ μλ€.
β value μμ±μ μνλ₯Ό μ°κ²°νμ§μμ κ²½μ°
- μ λ ₯νλμ κ°μ React μνμ λκΈ°νλμ§μλλ€. β‘οΈ λΉμ μ΄ μ»΄ν¬λνΈλ‘ λμ
- λΉμ μ΄ μ»΄ν¬λνΈλ κ°μ λ€λ£°λ €λ©΄ μ°Έμ‘°(Ref)λ₯Ό μ¬μ©νκ±° μ§μ DOMμ μ‘°μν΄μΌνλλ° μ΄ λ°©λ²μ΄ React μν κ΄λ¦¬ λ°©μκ³Ό λ§μ§μκ³ , μΆμ νκΈ° μ΄λ €μ΄ μ½λκ° λλ€
: select λ°μ€ μ¬μ©
βοΈ select-option
: option νκ·Έ μμ μ νμ§λ₯Ό λ§λ€μ΄μ€λ€.
: select νκ·Έλ κΈ°λ³Έμ μΌλ‘ optionλ€ μ€μ 맨 μμ μλ μ΅μ μ μ΄κΈ°κ°μΌλ‘ νλ€.
<select>
<option>-</option>
<option>νκ΅</option>
<option>λ―Έκ΅</option>
<option>μκ΅</option>
</select>
const [country, setCountry] = useState("");
const onChangeCountry = (e) => {
setCountry(e.target.value);
}
return (
<div>
<div>
<input value={name}
onChange={onChangeName}
placeholder={"μ΄λ¦"}/>
</div>
<div>
<input type="date" value={birth} onChange={onChangeBirth}/>
{birth}
</div>
<div>
<select value={country} onChange={onChangeCountry}>
<option>-</option>
<option>νκ΅</option>
<option>λ―Έκ΅</option>
<option>μκ΅</option>
</select>
{country}
</div>
</div>
)
: textarea νκ·Έ μ¬μ©
βοΈ Textarea νκ·Έ
: input νκ·Έμ λ¬λ¦¬ μ¬λ¬ μ€μ μ λ ₯μ λ°μ μ μλ νκ·Έμ΄λ€.
: νμ§λ§ input νκ·Έμ λμΌνκ² λμνλ€.
const [bio, setBio] = useState("");
const onChangeBio= (e) => {
setBio(e.target.value);
}
return (
<div>
<div>
<input value={name}
onChange={onChangeName}
placeholder={"μ΄λ¦"}/>
</div>
<div>
<input type="date" value={birth} onChange={onChangeBirth}/>
{birth}
</div>
<div>
<select value={country} onChange={onChangeCountry}>
<option>-</option>
<option>νκ΅</option>
<option>λ―Έκ΅</option>
<option>μκ΅</option>
</select>
{country}
</div>
<div>
<textarea value={bio} onChange={onChangeBio}/>
{bio}
</div>
</div>
)