Nội dung
26.13. React Refactor Quiz Đặt lại trách nhiệm component - tuhoc.cc
Trong video này, chúng ta sẽ cùng nhau đi sâu vào một bài học rất quan trọng trong React, đó là cách tổ chức logic và state sao cho đúng chỗ, dễ hiểu và dễ mở rộng, đặc biệt trong các ứng dụng có nhiều tương tác như quiz hay form nhiều bước. Ở phiên bản ban đầu của ứng dụng, component Quiz đang phải đảm nhiệm quá nhiều trách nhiệm cùng lúc. Nó vừa quản lý danh sách câu trả lời của người dùng, vừa theo dõi trạng thái chọn đáp án, vừa tự quyết định đúng hay sai, lại vừa xử lý các khoảng thời gian chờ để đổi màu đáp án. Trong khi đó, component Question lại chỉ đóng vai trò hiển thị giao diện, gần như không có logic riêng. Đây là một thiết kế phổ biến ở người mới học React, nhưng về lâu dài sẽ khiến mã nguồn khó đọc, khó bảo trì và rất dễ rối khi tính năng tăng lên. Video này tập trung giải quyết vấn đề đó bằng cách thay đổi tư duy thiết kế component. Thay vì để Quiz ôm toàn bộ logic, chúng ta chuyển những phần logic liên quan trực tiếp đến việc hỏi và trả lời về đúng nơi của nó, đó là component Question. Bởi vì Question là nơi hiển thị câu hỏi, các đáp án, trạng thái đã chọn và màu đúng sai, nên việc quản lý trạng thái trả lời ở đây là hợp lý và tự nhiên hơn rất nhiều. Trong quá trình refactor, bạn sẽ thấy rõ sự khác biệt giữa state cần chia sẻ và state chỉ nên tồn tại cục bộ. Quiz sau khi được tối ưu sẽ chỉ còn nhiệm vụ theo dõi người dùng đã trả lời bao nhiêu câu và xác định khi nào bài quiz kết thúc. Ngược lại, Question sẽ trở thành một component chủ động hơn, tự quản lý vòng đời của một câu hỏi từ lúc hiển thị, người dùng chọn đáp án, chờ hiển thị kết quả đúng sai, cho đến khi báo ngược lại cho Quiz để chuyển sang câu tiếp theo. Video cũng giải thích cặn kẽ các tình huống dễ gây nhầm lẫn cho người mới, chẳng hạn như việc thanh thời gian bị đứng khi trạng thái thay đổi, hay vì sao đôi khi ứng dụng lại tự động ghi nhận câu trả lời rỗng nếu không kiểm soát tốt logic timeout. Qua đó, bạn sẽ hiểu rõ hơn cách React hoạt động với state, effect và vòng đời component, mà không cần phải học lý thuyết khô khan. Đây là một bài học không hề dễ, nhưng lại cực kỳ giá trị. Nếu bạn hiểu được bài này, bạn sẽ có nền tảng rất tốt để viết React một cách có tổ chức, biết đặt state đúng chỗ, tách trách nhiệm rõ ràng và tránh được rất nhiều lỗi logic khó debug sau này. Video phù hợp cho người đã học qua React cơ bản và đang muốn nâng cao tư duy thiết kế component trong các ứng dụng thực tế.
Học bài này kèm ghi chú theo giây video
Ghi chú gắn đúng giây video, click là nhảy về vị trí đó — kèm tiến độ học, XP và bảng xếp hạng. Khoá này hoàn toàn miễn phí.
Nội dung khoá React JS từ cơ bản đến nâng cao - reactjs full course for free
Nội dung
- 1. React JS là gì? Học React từ cơ bản đến nâng cao cho người mới - React JS Gà Lại Lập Trình10 phút
- 2. JavaScript ES6 - Modules Tìm hiểu Named Export, Default Export - Giải thích chi tiết30 phút
- 3. Hướng Dẫn Tạo Dự Án React CodeSandbox vs Local Project using VScode - React Cho Người Mới12 phút
- 4. JS Function Review: Nhìn lại kiến thức cơ bản về Function trong JavaScript12 phút
- 5. JS Function Review: Arrow Function - Những điều bạn cần biết10 phút
- 6.JS OOP Review: Ôn tập, làm chủ Objects và Classes JavaScript nhanh chóng12 phút
- 7. JS Array Review: Ôn tập, review array JavaScript , những điểm cần lưu ý12 phút
- 8. Destructuring JavaScript - Cách sử dụng Destructuring Arrays và Objects21 phút
- 9. destructuring function - Ứng dụng Destructuring với đối tượng trong hàm JavaScript14 phút
- 10. Review Javascript Spread Operator - Làm việc với mảng và object trong JSbằng Spread Operator9 phút
- 11. React js - Cách Sử Dụng JSX Trong React Tất Tần Tật Cho Người Mới Bắt Đầu12 phút
- 12. React js - Component trong React - Tạo ứng dụng React cơ bản nhanh chóng10 phút
- 13.1 React js _ Render Hình Ảnh, Dữ Liệu động - Cách Sử Dụng JSX để Hiển Thị Dữ Liệu Linh Hoạt12 phút
- 13.2 React js (tiếp) Render Hình Ảnh, Dữ Liệu động - Cách Sử Dụng JSX để Hiển Thị Dữ Liệu Linh Hoạt8 phút
- 14.1 React js _ Props Trong React Là Gì_ Hướng Dẫn Chi Tiết Cho Người Mới - React js tuhoc.cc21 phút
- 14.2 React js _ Tối ưu hoá code với Destructuring và Spread Operator - hướng dẫn chi tiết9 phút
- 14.3 React js _ Cách chia nhỏ dự án lập trình lớn để dễ quản lý và phát triển4 phút
- 14.4 React js _ Cách tối ưu Component trong React – tuhoc.cc1 phút
- 14.5 React js _ props.children_ Cách hoạt động và ứng dụng thực tế7 phút
- 14.6 React js - React onClick - Hướng Dẫn Cơ Bản Cho Người Mới Bắt Đầu bởi tuhoc.cc5 phút
- 14.7 React js - Truyền hàm sự kiện từ Component cha vào Component con7 phút
- 14.8 React js - Xử Lý Sự Kiện Trong React Dễ Dàng Hơn Với Arrow Function8 phút
- 14.9 State React từ A-Z - Tìm hiểu về State và hook trong reactjs22 phút
- 14.10 Bài tập React 01 - Ứng Dụng React useState- Hiển Thị Lời Chào Dựa Trên Thời Gian11 phút
- 14.11 React js - Ứng Dụng State Để Hiển Thị Dữ Liệu Thực - react js by Gà Lại Lập Trình10 phút
- 14.12 React js -Hiển Thị Nội Dung Theo Điều Kiện Trong React - useState và Ternary16 phút
- 14.13 Bài tập React js 02 - Hiển Thị Hộp Cảnh Báo Có sử dụng useState Reactjs9 phút
- 14.14 React js - Thêm Class Active Cho button - Cách Làm Nút Bấm Sáng Khi Được Chọn5 phút
- 14.15 Bài tập React 03 -Học React JS qua bài tập thực tế Thêm class active cho phần tử6 phút
- 38. Array map method - Giải thích map() trong JavaScript qua ví dụ dễ hiểu22 phút
- 14.16 map() in react - Tối ưu hóa mảng trong React Tránh lỗi phổ biến khi dùng chỉ số index9 phút
- 14.17 Bài tập react 04 - Hiển thị danh sách dùng map in react8 phút
- 14.18 React Optimization Tối ưu code với Section Component9 phút
- 14.19 Forwarding Props trong React là gì Cách sử dụng ...props6 phút
- 14.20 Tạo component Tabs Menu - Tối ưu hoá tăng hiệu quả và tái sử dụng trong ReactJS8 phút
- 14.21 React Tips Tối ưu Tabs Menu cho ứng dụng lớn - Học React từ cơ bản đến nâng cao6 phút
- 14.22 Default Props Trong React Hướng Dẫn Từng Bước - Hướng Dẫn React Cho Người Mới2 phút
- 14.23 Tối ưu hóa App.js với các Component riêng - xây dựng App.js tối giản trong React11 phút
- 15. Sai Lầm Khi sử dụng useState Trong React – Bạn Có Đang Mắc Phải10 phút
- 16.1 React State_ Hiểu Rõ One-Way Binding & Two-Way Binding - react js gà lại lập trình14 phút
- 16.2 React State Two-Way Binding với nhiều trường input19 phút
- 17.1 React CSS 01 - Dùng CSS toàn cục với Import CSS - React CSS cơ bản7 phút
- 17.2 React CSS 02 - Import CSS trong react buổi 2 - Thêm nhiều class đồng thời vào phần tử9 phút
- 17.3 React CSS - Inline styling in Reactjs - CSS Inline trong React - Hướng dẫn React cho người mới9 phút
- 17.4 CSS Module trong React là gì Hướng dẫn chi tiết cho người mới bắt đầu7 phút
- 17.5 Styled Components - CSS-in-JS Trong 10 Phút Với Ví Dụ Dễ Hiểu10 phút
- 17.6 Styled Components - Dynamic & Conditional Styling - Cách áp dụng điều kiện CSS18 phút
- 17.7 Styled Components - Pseudo Selectors, Nested Rules & Media Queries10 phút
- 18.1 Refs & Portals trong React -Giới thiệu dự án thực hành refs - protals react js, Ôn tập useState19 phút
- 18.2 React useRef_ Làm Chủ .current để Điều Khiển Component8 phút
- 18.3 So sánh useRef và useState_ Khi nào dùng cái nào6 phút
- 18.4 Add Component Timer - Refs & Portals trong React - Dự án thực hành react refs và protals5 phút
- 18.5 Thêm useState Timer- Refs & Portals trong React - Dự án thực hành react refs và protals10 phút
- 18.6 Sử dụng ref để xử lý Stop Timer - Refs & Portals trong React7 phút
- 18.7 Thêm Modal Popup – Kết hợp useRef với dialog - Refs & Portals trong React12 phút
- 18.8 useImperativeHandle Hook - Nâng cấp logic với useImperativeHandle trong react js8 phút
- 18.9 Hiện modal khi click stop - Dự án thực hành refs, protals react js dễ hiểu cho người mới10 phút
- 18.10 Xử lý thông báo thắng thua - Dự án thực hành refs, protals react js tuhoc.cc10 phút
- 18.11 Hiển thị kết quả – Tính điểm khi dừng đúng thời gian - Dự án thực hành refs, protals react js4 phút
- 18.12 Giải Thích Portals Trong React_ Dễ Hiểu & Ứng Dụng Thực Tế5 phút
- 19. useReducer trong React_ Cách quản lý state phức tạp với useReducer26 phút
- 20.1 useContext React – Hạn chế của useState với cách truyền props drilling15 phút
- 20.2 useContext React – Giải pháp tối ưu cho truyền dữ liệu nhiều tầng tránh props drilling12 phút
- 21.1 React useEffect Là Gì_ Hướng Dẫn Toàn Tập Cho Người Mới Bắt Đầu17 phút
- 21.2 Làm chủ useEffect trong ReactJS_ Thực hành call API và phân tích kết quả14 phút
- 21.3 ReactJS useEffect_ Cách Unmount Component & Cleanup setInterval_setTimeout Trong React17 phút
- 21.4 Hướng dẫn useEffect với event DOM_ Resize, Keydown trong ReactJS9 phút
- 22. ReactJS useLayoutEffect_ Hiểu Rõ Khác Biệt với useEffect Qua Ví Dụ Thực Tế6 phút
- 23. React.memo giải thích dễ hiểu – Khi nào nên dùng và lưu ý cho người mới10 phút
- 24. React.memo & useCallback_ Cách Giảm Số Lần Render Component Con Hiệu Quả7 phút
- 25 React useMemo Cách tối ưu component với phép tính phức tạp10 phút
- 26.1. Tự Học ReactJS Qua Dự Án – Hướng dẫn làm App trắc nghiệm (Quiz App)11 phút
- 26.2. React JS Quiz App - Hiển thị câu hỏi trắc nghiệm và xử lý đáp án - component Quiz20 phút
- 26.3. React JS Quiz App - Giải thích thuật toán shuffle trước khi áp dụng vào Quiz App18 phút
- 26.4. React JS Quiz App - Thêm màn hình kết thúc và xáo trộn câu trả lời Quiz App12 phút
- 26.5. React JS Quiz App - Thêm thanh tiến trình vào Quiz App Progress Bar15 phút
- 26.6. React JS Quiz App - Cleanup function ngăn lỗi logic và leak bộ nhớ4 phút
- 26.7. React JS Quiz App - Hiểu useCallback qua dự án Quiz App17 phút
- 26.8. React JS Quiz App - Giải thích Key props qua ví dụ Quiz App9 phút
- 26.9. React JS Quiz App - Xử lý đổi màu đáp án bằng state28 phút
- 26.10. Ví dụ thực tế về useRef Ghi nhớ dữ liệu không render lại tuhoc.cc11 phút
- 26.11. React key prop React useRef bị lưu dữ liệu cũ Giải thích & fix bằng key prop tuhoc.cc16 phút
- 26.12. React component Tách và gộp component React xử lý lỗi trùng key15 phút
- ▸ 26.13. React Refactor Quiz Đặt lại trách nhiệm component - tuhoc.cc32 phút
- 26.14. Vì Sao Progress Trong React Chạy Sai Thời Gian tuhoc.cc21 phút
- 26.15. React JS Tạo Component Summary - Trang Tổng Kết Kết Quả32 phút