Tạo một component Counter có chứa một state là count bằng ReactJS
Trong bài tập này, mình sẽ tạo một component ReactJS có tên là Counter. Component này sẽ chứa một trạng thái là count, và sẽ hiển thị giá trị của count cùng với hai nút "Increment" và "Decrement". Khi người dùng nhấn vào nút tương ứng, giá trị của count sẽ tăng hoặc giảm.
Bước 1: Tạo Component Counter
Mở file src/components/Counter.js
và thêm nội dung sau:
// src/components/Counter.js import React, { useState } from 'react'; import './Counter.css'; const Counter = () => { // Hook useState để quản lý trạng thái 'count' const [count, setCount] = useState(0); // Hàm tăng giá trị của count const increment = () => { setCount(count + 1); }; // Hàm giảm giá trị của count const decrement = () => { setCount(count - 1); }; // Cấu trúc JSX để hiển thị component Counter return ( <div className="counter"> <p>Count: {count}</p> <button onClick={increment}>Tăng</button> <button onClick={decrement}>Giảm</button> </div> ); }; export default Counter;
Giải thích:
Câu lệnh Import:
import React, { useState } from 'react';
: Import React và hook useState từ thư viện 'react'. Hook useState được sử dụng để quản lý trạng thái trong các component hàm.
Functional Component: Counter:
-
const [count, setCount] = useState(0);
: Khai báo một biến trạng thái count bằng cách sử dụng hook useState, khởi tạo giá trị là 0. setCount là hàm cho phép cập nhật trạng thái. -
const increment = () => { setCount(count + 1); };
: Định nghĩa một hàm increment mà khi được gọi, tăng giá trị của count lên 1. -
const decrement = () => { setCount(count - 1); };
: Định nghĩa một hàm decrement mà khi được gọi, giảm giá trị của count đi 1. -
return (...)
: Trả về một cấu trúc JSX để hiển thị giao diện của component Counter.-
<div className="counter">
: Một thẻ <div> với class là "counter" để tạo một vùng chứa cho các phần tử bên trong. -
<p>Count: {count}</p>
: Hiển thị giá trị của count trong một đoạn văn bản. -
<button onClick={increment}>Tăng</button>
: Nút "Tăng" với sự kiện onClick gọi hàm increment khi nút được nhấn. -
<button onClick={decrement}>Giảm</button>
: Nút "Giảm" với sự kiện onClick gọi hàm decrement khi nút được nhấn.
-
Bước 2: Tạo File CSS
Tạo một file mới có tên là Counter.css
trong thư mục src/components
. Thêm các quy tắc CSS để tùy chỉnh giao diện của Counter:
/* src/components/Counter.css */ .counter { text-align: center; margin-top: 20px; color: black; } p { font-size: 18px; margin-bottom: 10px; } button { font-size: 16px; margin: 0 5px; padding: 8px 16px; cursor: pointer; background-color: #007bff; color: #fff; border: none; border-radius: 4px; } button:hover { background-color: #0056b3; }
Bước 3: Sử dụng Component trong App
Mở file src/App.js
và sửa nội dung như sau:
// src/App.js import React from 'react'; import Counter from './components/Counter'; import './App.css'; function App() { return ( <div className="App"> <header className="App-header"> <Counter /> </header> </div> ); } export default App;
Bước 4: Chạy ứng dụng
Mở terminal và chạy ứng dụng bằng lệnh:
npm start
Ứng dụng sẽ mở trên http://localhost:3000 và hiển thị component Counter với giá trị khởi tạo là 0 và hai nút "Increment" và "Decrement".
Trong bài tập này, mình đã tạo thành công một component ReactJS có tên là Counter. Component này sử dụng hook useState để quản lý trạng thái, và hiển thị giá trị của count cùng với hai nút "Tăng" và "Giảm". Khi người dùng nhấn vào các nút này, giá trị của count sẽ được cập nhật tương ứng.
Mình đã thực hành việc sử dụng hook useState, định nghĩa các hàm để thay đổi trạng thái, và tích hợp component này vào ứng dụng ReactJS chính.
Việc làm quen với quản lý trạng thái và cập nhật giao diện người dùng dựa trên sự thay đổi của trạng thái là một phần quan trọng trong việc xây dựng các ứng dụng ReactJS động và tương tác.
Hy vọng rằng bạn đã có một trải nghiệm học tốt và sẽ áp dụng kiến thức này vào các dự án ReactJS của bạn trong tương lai.
Bài giải
-------------------- ######## --------------------
Câu hỏi thường gặp liên quan:
- Tạo một component Counter có chứa một state là count bằng ReactJS
- Tạo một component Clock có chứa state là currentTime trong ReactJS
- Tạo một component Toggle với một state là isOn trong ReactJS
- Tạo một component TodoList với state là một mảng todos trong ReactJS
- Tạo một component CountdownTimer với state trong ReactJS
- Tạo một component ColorPicker có chứa state trong ReactJS
- Tạo một component WeatherApp với state trong ReactJS
- Tạo một component QuizGame với state bằng ReactJS
- Tạo một component ImageCarousel với state bằng ReactJS
- Tạo một component ShoppingCart với state bằng ReactJS