<button onClick={handleEvent}>Event</button>
<input>
<textarea>
<select>
와 같은 폼(Form) 엘리먼트는 사용자의 입력값을 제어하는 데 사용됩니다.
React 에서는 이러한 변경될 수 있는 입력값을 일반적으로 컴포넌트의 state 로 관리하고 업데이트합니다.
onChange
이벤트가 발생하면 e.target.value
를 통해 이벤트 객체에 담겨있는 input
값을 읽어올 수 있습니다.
컴포넌트 return 문 안의 input
태그에 value
와 onChange
를 넣어주었습니다.
onChange
는 input
의 텍스트가 바뀔 때마다 발생하는 이벤트입니다.
이벤트가 발생하면 handleChange
함수가 작동하며, 이벤트 객체에 담긴 input
값을 setState
를 통해 새로운 state 로 갱신합니다.
function NameForm() {
const [name, setName] = useState("");
const handleChange = (e) => {
setName(e.target.value);
}
return (
<div>
<input type="text" value={name} onChange={handleChange}></input>
<h1>{name}</h1>
</div>
)
};
onClick
이벤트는 말 그대로 사용자가 클릭이라는 행동을 하였을 때 발생하는 이벤트입니다.
버튼이나 <a>
tag를 통한 링크이동 등과 같이 주로 사용자의 행동에 따라 애플리케이션이 반응해야 할 때 자주 사용하는 이벤트입니다.
import "./styles.css";
import React, { useState } from "react";
function NameForm() {
const [name, setName] = useState("");
const handleChange = (e) => {
setName(e.target.value);
};
const handleClick = () => {
alert(name);
};
return (
<div className="App">
<h1>Event handler practice</h1>
<input type="text" value={name} onChange={handleChange}></input>
<button onClick={handleClick}>Button</button>
{/* <button onClick={() => alert(name)}>Button</button> */}
<h3>{name}</h3>
</div>
);
}
export default NameForm;
<select>