Tạo một component SurveyPoll trong ReactJS
Trong loạt bài tập ReactJS: Forms và Controlled Components, mình sẽ thực hiện Bài 17 - "Survey Poll". Trong bài này, mình sẽ tạo một component SurveyPoll
chứa một biểu mẫu cho phép người dùng bình chọn trong một cuộc khảo sát và hiển thị kết quả bình chọn trong console.
Survey Poll trong ReactJS
Mình sẽ bắt đầu bằng việc tạo một ứng dụng React mới và thêm component SurveyPoll
vào đó.
Bước 1: Tạo một ứng dụng React mới
npx create-react-app react-survey-poll cd react-survey-poll
Bước 2: Tạo component SurveyPoll
Trong thư mục src, tạo một file mới có tên là SurveyPoll.js. File này sẽ chứa component SurveyPoll
.
SurveyPoll.js
import React, { useState } from 'react'; import './SurveyPoll.css'; const SurveyPoll = () => { const [options, setOptions] = useState([ { id: 1, text: 'Option 1', votes: 0 }, { id: 2, text: 'Option 2', votes: 0 }, { id: 3, text: 'Option 3', votes: 0 }, ]); const handleVote = (id) => { const updatedOptions = options.map(option => option.id === id ? { ...option, votes: option.votes + 1 } : option ); setOptions(updatedOptions); console.log('Kết quả bình chọn:', updatedOptions); // Thêm logic xử lý kết quả bình chọn ở đây (ví dụ: gửi đến API, lưu vào state, ...) }; return ( <div className="survey-poll-container"> <h2>Survey Poll</h2> <ul> {options.map(option => ( <li key={option.id}> <button onClick={() => handleVote(option.id)}>{option.text}</button> </li> ))} </ul> </div> ); }; export default SurveyPoll;
Bước 3: Tạo file CSS cho SurveyPoll
Tạo một file CSS mới có tên là SurveyPoll.css trong thư mục src để trang trí giao diện của SurveyPoll.
SurveyPoll.css
.survey-poll-container { max-width: 400px; margin: auto; padding: 20px; border: 1px solid #ccc; border-radius: 8px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } h2 { text-align: center; } ul { list-style-type: none; padding: 0; } li { margin-bottom: 10px; } button { background-color: #3498db; color: white; padding: 10px 15px; border: none; border-radius: 4px; cursor: pointer; width: 100%; } button:hover { background-color: #2980b9; }
Bước 4: Sử dụng component SurveyPoll trong App
Sửa nội dung file src/App.js để sử dụng component SurveyPoll.
App.js
import React from 'react'; import SurveyPoll from './SurveyPoll'; function App() { return ( <div className="App"> <h1>React Survey Poll Exercise</h1> <SurveyPoll /> </div> ); } export default App;
Bước 5: Chạy ứng dụng React
Quay lại terminal và chạy lệnh sau để khởi động ứng dụng React:
npm start
Mở trình duyệt và truy cập http://localhost:3000 để xem ứng dụng của bạn. Bạn sẽ thấy một cuộc khảo sát với các tùy chọn và có thể bình chọn vào các tùy chọn. Kết quả bình chọn sẽ được hiển thị trong console.
Kết Bài:
Với bài tập "Survey Poll" này, mình đã tạo một cuộc khảo sát cho phép người dùng bình chọn vào các tùy chọn và hiển thị kết quả bình chọn trong console. CSS đã được kết hợp để tạo ra giao diện thân thiện và dễ sử dụng. Hãy tiếp tục tìm hiểu và thực hành để làm quen với các tính năng khác của ReactJS và phát triển kỹ năng lập trình.
Bài giải
-------------------- ######## --------------------
Câu hỏi thường gặp liên quan:
- Tạo một component BasicForm trong ReactJS
- Tạo một component LoginForm trong ReactJS
- Tạo một component RegistrationForm trong ReactJS
- Tạo một component SearchBar trong ReactJS
- Tạo một component TodoForm trong ReactJS
- Tạo một component FileUpload trong ReactJS
- Tạo một component PasswordChangeForm trong ReactJS
- Tạo một component DynamicFormFields trong ReactJS
- Tạo một component CurrencyConverter trong ReactJS
- Tạo một component DatePicker trong ReactJS
- Tạo một component AutocompleteSearch trong ReactJS
- Tạo một component SurveyForm trong ReactJS
- Tạo một component MultiStepForm trong ReactJS
- Tạo một component ColorPicker trong ReactJS
- Tạo một component AddressForm trong ReactJS
- Tạo một component SurveyPoll trong ReactJS
- Tạo một component TimeTrackingForm trong ReactJS
- Tạo một component QuizForm trong ReactJS
- Tạo một component ReservationForm trong ReactJS