dev-proPRO
OverviewLộ Trình HọcPhỏng VấnAI System
dev-pro— Thực chiến Frontend React, Next.js & Luyện phỏng vấn
contact@dev-pro.online•Code thật. Phỏng vấn thật.
Seri React Mastery8 Lộ trình · Sandbox
Seri React Mastery
8 tracks
T01
React Core Foundations0/7 hoàn thành
T02
React Hooks Mastery0/5 hoàn thành
T03
React Component Architecture & Forms0/4 hoàn thành
  • Bài học (4)
  • Quy chuẩn Viết Custom Component & Typescript (Enterprise)15m•intermediate
  • Chuyên sâu Form: Controlled vs Uncontrolled Components18m•intermediate
  • Tối ưu Memoization thủ công: useMemo & useCallback15m•intermediate
  • Khoanh vùng lỗi với React Error Boundary & Next.js error.tsx18m•advanced
T04
React & Compiler: Modern Path0/4 hoàn thành
T05
Form Engineering: RHF + Zod + Server Actions0/2 hoàn thành
T06
Advanced React Performance Patterns0/4 hoàn thành
T07
Enterprise React Testing & Production Readiness0/5 hoàn thành
T08
Production Capstone: TeamBoard0/1 hoàn thành
Tiến độ React0/32 bài
React Component Architecture & Forms
advanced
18 phút
#React Error Boundary
#Next.js
#error.tsx
#Resilience

Khoanh vùng lỗi với React Error Boundary & Next.js error.tsx

Ngăn ngừa White Screen of Death (WSOD), bắt Unhandled Render Errors và khôi phục giao diện mượt mà với reset().

Core Mental Model

Error Boundary đóng vai trò như cầu chì bảo vệ điện: khi 1 bóng đèn (component con) bị chập cháy, cầu chì ngắt điện khoanh vùng tại chỗ mà KHÔNG làm sập điện toàn bộ tòa nhà.

Key Takeaways & Principles

Tại sao cần Error Boundary: Nếu không có Error Boundary, 1 lỗi JavaScript nhỏ khi render ở component con sẽ khiến React gỡ toàn bộ cây DOM, biến toàn bộ trang web thành màn hình trắng (White Screen of Death).
React Class Component Error Boundary: Bắt buộc dùng Class Component với static getDerivedStateFromError(error) và componentDidCatch(error, info) (hoặc thư viện react-error-boundary).
Next.js App Router `error.tsx`: tạo error boundary cho route segment. Component nhận `{ error, reset }`; `reset()` thử render lại segment và không bảo đảm lỗi nguồn đã được xử lý.
Phạm vi BẮT ĐƯỢC lỗi: Lỗi xảy ra trong khi Render, Lỗi trong Lifecycle methods, Lỗi trong Constructors của cây component con.
Phạm vi KHÔNG BẮT ĐƯỢC lỗi: Lỗi trong Event Handlers (onClick - dùng try/catch), Lỗi trong mã Asynchronous (setTimeout, requestAnimationFrame), Lỗi phía Server (Server Actions).