Xử Lý Sự Kiện (Event) Trong ReactJS - Viblo
Trong bài học mình sẽ hướng dẫn bạn "Làm sao để sử dụng Event (sự kiện) trong ReactJS". Cũng không có nhiều khác biệt khi bạn sử dụng các event trong ReactJS so với sử dụng các event trong Javascript.
-
- Trong Javascript bạn sẽ xử lý sự kiện trong một hàm, còn trong React bạn sẽ xử lý sự kiện trong một phương thức của Component.
ReactJS Events
React là một thư viện dựa trên Javascript, về cơ bản không có nhiều khác biệt trong cách xử lý sự kiện giữa ReactJS và Javascript. Với Javascript, khi sự kiện xẩy ra một hàm sẽ được gọi để thực thi. Nhưng với React, khi sự kiện xẩy ra, sẽ có một phương thức của Component được gọi.
OK, trước hết hãy xem một ví dụ đơn giản:
File onClick-example.jsx
class CurrentTime extends React.Component { constructor(props) { super(props); var now = new Date(); this.state = { currentTime: now.toString() }; } // A method of CurrentTime component refreshCurrentTime() { var now = new Date(); this.setState({ currentTime: now.toString() }); } render() { return ( <div> <h4>Current Time:</h4> <p>{this.state.currentTime}</p> <button onClick={() => this.refreshCurrentTime()}> Refresh Current Time </button> </div> ); } } // Render ReactDOM.render(<CurrentTime />, document.getElementById("currenttime1"));File onClick-example.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ReactJS Event</title> <script src="https://unpkg.com/[email protected]/umd/react.production.min.js"></script> <script src="https://unpkg.com/[email protected]/umd/react-dom.production.min.js"></script> <script src="https://unpkg.com/[email protected]/babel.min.js"></script> <style> #currenttime1 { border:1px solid blue; padding: 5px; margin-top: 20px; } </style> </head> <body> <h3>ReactJS Event: onClick</h3> <div id="currenttime1"></div> <script src="onClick-example.jsx" type="text/babel"></script> </body> </html>Kết quả: 
Arrow Function
Với cú pháp Javascript ES6 bạn có thể tạo một arrow function (Hàm mũi tên), rất ngắn gọn và dễ hiểu:
// Normal function with parameters var myfunc = function(param1, param2) { // Statements }; // Arrow function with parameters. var arrfunc = (param1, param2) => { // Statements }; // Normal function without paramters. var myfunc2 = function( ) { // Statements }; // Arrow function without parameters. var arrfunc2 = ( ) => { // Statements }; // If function have only one statement. var arrfunc2 = ( ) => singleStatement;onClick, onChange,..
onClick phải gọi đến một hàm Javascript, nó không thể gọi trực tiếp đến một phương thức của Component. Vì vậy onClick nên gọi đến một hàm nặc danh (anonymous), và bên trong hàm nặc danh này bạn có thể gọi đến phương thức của Component:

Arrow function với tham số event:
// A method of Component with event parameter. refreshCurrentTime(event) { var now = new Date(); this.setState({ currentTime: now.toString() }); } render() { return ( <div> <h4>Current Time:</h4> <p>{this.state.currentTime}</p> <button onClick={(event) => this.refreshCurrentTime(event)}> Refresh Current Time </button> </div> ); }Với Javascript ES6 bạn cũng có thể gọi đến phương thức của Component theo cách sau:
File onClick-example3.jsx
// A method of this Component. refreshCurrentTime(event) { var now = new Date(); this.setState({ currentTime: now.toString() }); } render() { return ( <div> <h4>Current Time:</h4> <p>{this.state.currentTime}</p> <button onClick={this.refreshCurrentTime.bind(this,event)}> Refresh Current Time </button> </div> ); }Hoặc:
class CurrentTime extends React.Component { constructor(props) { super(props); var now = new Date(); this.state = { currentTime: now.toString() }; // (***) this.refreshCurrentTime = this.refreshCurrentTime.bind(this); } // A method of this Component refreshCurrentTime( ) { var now = new Date(); this.setState({ currentTime: now.toString() }); } render() { return ( <div> <h4>Current Time:</h4> <p>{this.state.currentTime}</p> <button onClick={this.refreshCurrentTime}> Refresh Current Time </button> </div> ); } } // Render ReactDOM.render(<CurrentTime />, document.getElementById("currenttime1"));Cảm ơn các bạn đã đọc! (bow)
Từ khóa » Số Event
-
Quy Cách Của Sự Kiện Tiêu Chuẩn Cho Facebook Pixel
-
Event Là Gì? Các Công Việc Người Làm Event Phải Làm?
-
Event In Javascript - Viblo
-
Các Sự Kiện (Event) Trong Javascript - Freetuts
-
Sự Kiện - Events | - Diễn đàn Xổ Số Lớn Nhất Việt ...
-
Sự Kiện Trong Dom - JavaScript
-
Event Marketing 101: Làm Thế Nào để Lôi Cuốn Người Tham Dự Trước ...
-
Một Số Event Trong Javascript - KungFu Tech
-
Xử Lý Một Số Event JavaScript Cơ Bản | Cô Ban, Ly - Pinterest
-
Xử Lí Sự Kiện - Vue.js
-
Vé Xổ Số Mega Millions | Governor, Airline, Event Ticket - Pinterest
-
Việc Bắt Các Sự Kiện - React
-
Xử Lý Sự Kiện (Event) Trong Javascript - Openplanning