Chi tiết về React Framework
1. React là gì?
-
React là một JavaScript library (thư viện, không hẳn là framework hoàn chỉnh) được phát triển bởi Facebook vào năm 2013.
-
Nó được dùng để xây dựng giao diện người dùng (UI), đặc biệt là các ứng dụng web có tính tương tác cao.
-
React tập trung vào việc render component theo trạng thái (state) thay vì thao tác trực tiếp vào DOM.
2. Đặc điểm chính
-
Component-based (dựa trên thành phần):
-
Ứng dụng React được chia thành nhiều component nhỏ, tái sử dụng được.
-
Mỗi component quản lý riêng logic và giao diện của nó.
-
-
Virtual DOM:
-
React không thao tác trực tiếp vào DOM thật.
-
Nó tạo ra một Virtual DOM (DOM ảo) để so sánh sự khác biệt (diffing) → chỉ cập nhật phần thay đổi → giúp hiệu năng cao.
-
-
One-way data binding (truyền dữ liệu một chiều):
-
Dữ liệu đi từ parent → child.
-
Giúp ứng dụng dễ kiểm soát và debug hơn.
-
-
JSX (JavaScript XML):
-
Cho phép viết HTML bên trong JavaScript.
-
Giúp dễ dàng mô tả UI một cách trực quan.
-
-
React Hooks (từ v16.8):
-
Cho phép dùng state và lifecycle trong function component.
-
Ví dụ:
useState,useEffect,useContext...
-
3. Cấu trúc cơ bản của một ứng dụng React
Một ứng dụng React thường có:
-
index.js→ file khởi tạo ứng dụng. -
App.js→ component chính. -
Các component con trong thư mục
components/.
Ví dụ đơn giản:
4. Ưu điểm của React
-
Dễ học nếu đã biết JavaScript.
-
Hiệu năng cao nhờ Virtual DOM.
-
Cộng đồng lớn, nhiều thư viện hỗ trợ.
-
Tái sử dụng component.
-
Có thể kết hợp với React Native để xây dựng ứng dụng di động.
5. Nhược điểm
-
Không phải full framework → cần kết hợp với thư viện khác:
-
Routing →
react-router-dom. -
State management → Redux, Zustand, Recoil…
-
-
JSX có thể khó làm quen cho người mới.
-
Tốc độ phát triển nhanh, thay đổi liên tục → cần cập nhật thường xuyên.
6. Ứng dụng thực tế
React được dùng bởi nhiều công ty lớn: Facebook, Instagram, Netflix, Airbnb, Uber, WhatsApp Web…
Một số dạng ứng dụng điển hình:
-
Website thương mại điện tử.
-
Dashboard quản trị.
-
Ứng dụng SPA (Single Page Application).
-
Ứng dụng chat, mạng xã hội.