Recent posts
Lịch Sử React: Từ Version 15 Đến React 19 Qua Từng Cột Mốc
Dòng thời gian React từ version 15 tới 19: Fiber, Hooks, Concurrent, Actions — mỗi cột mốc ra đời để giải quyết gì.
Tính Năng Mới Trong React 19: Actions Và Hook use()
Tính năng React 19: Actions, useActionState, useFormStatus, useOptimistic, hook use() và ref as prop thay forwardRef.
Batch Async Tasks Trong React: Từ setState Đến Debounce
Automatic batching React 18 và cách chủ động gộp async task bằng debounce, Promise.all, useTransition để giảm re-render.
Concurrency Trong React 18: Transitions Và Suspense
Concurrent rendering React 18: startTransition, useTransition, useDeferredValue và Suspense giữ UI mượt khi render.
Lifecycle React: Class Component vs Functional Component
Map lifecycle class component React sang functional hooks: useEffect, useLayoutEffect, React.memo và error boundary.
Test Custom React Hooks Với renderHook Trong Vitest
Test custom React hook với renderHook trong Vitest: act, rerender, wrapper Context, waitFor cho hook async, unmount.
Flaky Test: Vì Sao Test Chập Chờn Và Cách Khắc Phục
Flaky test là gì, vì sao nguy hiểm và cách khắc phục bằng await, fake timers, reset state và seed random trong Vitest.
vi.spyOn vs vi.mock: Khi Nào Dùng Cái Nào Trong Vitest
vi.spyOn hay vi.mock trong Vitest: khác nhau về phạm vi, hoisting, partial mock và cách dọn dẹp mock giữa test.
CVA: Quản Lý Variants Type-Safe Cho React Components
Dùng CVA quản lý CSS class variants type-safe trong React: VariantProps tự động, compound variants, tích hợp Zod
Zod: Validate Dữ Liệu Type-Safe Trong React
Học Zod cho React: z.infer, parse/safeParse, coerce, optional, default và type guard validate dữ liệu thực tế