React 엘리먼트에서 이벤트를 처리하는 방식은 DOM 엘리먼트에서 이벤트를 처리하는 방식과 매우 유사합니다. 몇 가지 문법 차이는 다음과 같습니다. - React 문서
onclick
-> onClick
import React, { Component } from "react";
class EventPractice extends Component {
render() {
return (
<div>
<h1>이벤트 연습</h1>
</div>
);
}
}
export default EventPractice;
import EventPractice from "./EventPractice";
const App = () => {
return <EventPractice />;
};
export default App;
import React, { Component } from "react";
class EventPractice extends Component {
render() {
return (
<div>
<h1>이벤트 연습</h1>
<input
type="text"
name="message"
placeholder="아무거나 입력해 보세요"
onChange={(e) => {
console.log(e);
}}
/>
</div>
);
}
}
export default EventPractice;
onChange={(e) => {
console.log(e);
}}
여기서 e 객체는 SyntheticEvent 로 웹 브라우저의 네이티브 이벤트를 감싸는 객체입니다. 순수 자바스크립트에서 HTML 이벤트를 다룰 때와 똑같이 사용하면 됩니다.
값이 바뀔 때마다 바뀌는 값을 콘솔에 기록하는걸 확인할 수 있습니다.
onChange={(e) => {
console.log(e.target.value);
}}
import React, { Component } from "react";
class EventPractice extends Component {
// state 초기값 설정
state = {
message: ""
};
render() {
return (
<div>
<h1>이벤트 연습</h1>
<input
type="text"
name="message"
placeholder="아무거나 입력해 보세요"
value={this.state.message} //input value를 state 값으로 받아오기
onChange={(e) => {
this.setState({
message: e.target.value
});
}}
/>
<button
onClick={() => {
alert(this.state.message);
this.setState({
message: "" //값 초기화 (공백)
});
}}
>
확인해보기
</button>
</div>
);
}
}
export default EventPractice;