Dự án: ứng dụng quản lý nhỏ với Vite
Ở bài trước bạn đã biết cách gọi fetch trong useEffect, giữ ba trạng thái loading, error, data và cleanup request bằng AbortController. Giờ ta ghép tất cả lại: một ứng dụng nhỏ nhưng đủ để bạn thấy mọi mảnh ghép của module 3 hoạt động cùng nhau.
Bạn đã quen với đoạn HTML tĩnh thế này:
<ul>
<li><input type="checkbox" checked> Mua sữa</li>
<li><input type="checkbox"> Nộp báo cáo</li>
</ul>
Vấn đề của HTML thuần: muốn thêm một dòng, bạn phải tự tạo thẻ li và appendChild. Với React, bạn chỉ mô tả "danh sách này trông thế nào khi state là như vậy", phần còn lại React lo.
Ứng dụng cần làm được gì
Tên dự án: Sổ việc cần làm. Yêu cầu tối thiểu:
- Tải 5 việc ban đầu từ
https://jsonplaceholder.typicode.com/todos?_limit=5 - Hiện
Đang tải...trong lúc chờ, hiện thông báo lỗi nếu request thất bại - Có form thêm việc mới, ô nhập là controlled input
- Tick checkbox để đánh dấu đã xong
- Hiện lời nhắc khi danh sách rỗng
Note: Dữ liệu API trả về có tên trường khác với item ta muốn dùng (
title,completed). Hãy map lại ngay sau khires.json()để phần còn lại của app chỉ làm việc với một hình dạng dữ liệu duy nhất:{ id, title, done }.
Bài tập nhỏ: viết component ItemRow nhận props item và onToggle, hiển thị checkbox cộng tiêu đề.
Bản đồ component và nơi đặt state
flowchart TD
App["🧠 App<br/>items, loading, error"]
App --> Form["📝 ItemForm<br/>title"]
App --> List["📋 ItemList<br/>props: items"]
App --> Status["⏳ Loading hoặc Error"]
List --> Row["✅ ItemRow<br/>props: item, onToggle"]
Nguyên tắc: state thuộc về component cha gần nhất cần dùng nó. items cần cho cả ItemList và form (để thêm), nên nó nằm ở App. Còn title của ô nhập chỉ ItemForm dùng, nên để riêng trong ItemForm.
In this lesson
- Thứ tự làm việc đề xuất
- Thế nào là xong: tiêu chí nghiệm thu
- Lỗi người mới hay mắc và mẹo gỡ
- Ghi nhớ nhanh sau khi làm xong
- Đã có gì trong tay và bước tiếp theo
About this course
Part of React từ con số 0 cho người chỉ biết HTML — Khóa học dẫn dắt người chỉ biết HTML/CSS đi qua JavaScript cần thiết và các khái niệm cốt lõi của React. Kết thúc khóa, bạn tự xây được một ứng dụng React hoàn chỉnh với form, danh sách và dữ liệu từ API.
- Level
- Beginner
- Goal
- Fundamentals
- Language
- Vietnamese
- Focus
- JavaScript ES6 đủ dùng cho React Component, JSX và props State và vòng đời với hooks Form, danh sách và gọi API Tư duy khai báo thay vì thao tác DOM
- Prior knowledge
- HTML cơ bản, CSS cơ bản
- Practice
- Exercises + capstone project
- Time
- ~5.8h
- Voice
- một lập trình viên frontend kiên nhẫn, luôn đưa ví dụ đời thường với HTML quen thuộc trước khi chuyển sang code React, và chỉ ra những lỗi người mới hay mắc.
- Not covered
- Next.js và SSR, Redux và quản lý state phức tạp, TypeScript nâng cao, Testing chuyên sâu, Tối ưu hiệu năng nâng cao
This lesson is premium content. Sign in and purchase the course to view the full content. Sign in