const App = () => {
const handleClick = () => {
alert("클릭했습니다.");
}
return (
<div>
<button onClick={handleClick}>
클릭하세요
</button>
</div>
)
}
const App = () => {
return (
<div>
<button onClick={() => { alert('클릭했습니다.')}>
클릭하세요
</button>
</div>
)
}
DOM Element 의 경우, 핸들링 함수에 이벤트 object를 매개변수로 전달
이벤트 object를 이용하여 이벤트 발생 원인, 이벤트가 일어난 Element에 대한 정보를 얻을 수 있음.
이벤트 형태 (클릭, 키 입력 등)와 DOM 종류 (button, form, input 등)에 따라 전달되는 이벤트 object 내용도 다름
const App = () => {
const handleChange = (event) => {
console.log(event.target.value) + "라고 입력하셨네요.");
}
return (
<div>
<input onChange={handleChange} />
</div>
)
더 많은 정보는 이 곳 참조
onClick : Element를 클릭했을 때onChange : Element의 내용이 변경되었을 때 (input 텍스트, 파일 선택 등)onKeyDown, onKeyUp, onKeyPress : 키보드 입력이 일어났을 때onDoubleClick : Element를 더블 클릭했을 때onFocus : Element에 Focus 되었을 때onBlur : Element가 Focus를 잃었을 때onSubmit : Form Element에서 Submit 했을 때const App = () => {
const [inputValue, setInputValue] = useState("defaultValue");
const handleChange = (e) => {
setInputValue(event.target.value);
}
return (
<div>
<input onChange={handleChange} defaultValue={inputValue} />
<br />
입력한 값은 : {inputValue}
</div>
)
function App() {
const [user, setUser] = useState({ name: "타잔", school: "크래프톤 정글" });
const handleChange = (e) => {
const { name, value } = e.target;
const newUser = { ...user };
newUser[name] = value;
setUser(newUser);
};
return (
<div className="App">
<input name="name" onChange={handleChange} value={user.name} />
<input name="school" onChange={handleChange} value={user.school} />
<br />
<p>
{user.name}님은 {user.school}에 재학중입니다.
</p>
</div>
);
}
// App.js
import MyForm from "./components/MyForm";
function App() {
const [username, setUsername] = useState("");
return (
<div>
<h1>{username}님 환영합니다.</h1>
<MyForm handleChange={(e) => setUsername(e.target.value)} />
</div>
);
}
export default App;
// MyForm.js
import React from "react";
const MyForm = ({ handleChange }) => {
return (
<div>
<span>이름 :</span>
<input onChange={handleChange} />
</div>
);
};
export default MyForm;
// App.js
import SOS from "./components/SOS";
function App() {
return (
<div>
<SOS onSOS={() => alert("긴급사태!")} />
</div>
);
}
export default App;
// SOS.js
import React, { useState } from "react";
function SOS({ onSOS }) {
const [count, setCount] = useState(0);
const handleClick = () => {
setCount((curr) => curr + 1);
if (count >= 2) {
onSOS();
setCount(0);
}
};
return <button onClick={handleClick}>세 번 누르면 긴급호출 ({count})</button>;
}
export default SOS;