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
  • Bài học (7)
  • Giải Phẫu Cấu Trúc Thư Mục Dự Án React & Vòng Đời Bootstrapping15m•beginner
  • Bản chất của JSX & Mental Model Render trong React15m•beginner
  • Props, Tính Bất Biến & Pattern Component Composition15m•beginner
  • Làm chủ State với useState & Cơ chế Batching18m•beginner
  • React Events, State Modeling & Lifting State20m•beginner
  • Rendering Danh Sách, Keys & Điều Kiện Hiển Thị Chuẩn16m•beginner
  • State Placement: Local, URL, Server, Global hay Form?20m•intermediate
T02
React Hooks Mastery0/5 hoàn thành
T03
React Component Architecture & Forms0/4 hoàn thành
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 Core Foundations
beginner
20 phút
#Events
#State Modeling
#Lifting State
#Single Source of Truth

React Events, State Modeling & Lifting State

Xử lý event đúng cách, thiết kế state tối thiểu và nâng state lên owner chung khi nhiều component cần đồng bộ.

Core Mental Model

Event mô tả điều vừa xảy ra; state mô tả UI cần ghi nhớ. Mỗi mẩu state nên có một owner rõ ràng. Khi hai component phải luôn đồng bộ, đặt state ở ancestor chung gần nhất và truyền value/callback xuống.

Key Takeaways & Principles

Truyền function cho event handler (`onClick={handleClick}`), không gọi function ngay trong render (`onClick={handleClick()}`).
Chỉ lưu state tối thiểu; dữ liệu có thể tính từ props/state hiện tại nên được tính trong render thay vì lưu bản sao.
Lifting state tạo một source of truth cho các component cần phối hợp; callback prop truyền ý định thay đổi ngược lên owner.
Dùng functional updater khi state mới phụ thuộc state trước: `setCount(count => count + 1)`.