React là gì? Tất cả những gì người mới cần biết
Bạn đang học JavaScript và mọi người xung quanh đều nói "phải học React"? React là gì, tại sao nó lại phổ biến đến vậy, và bắt đầu từ đâu? Bài viết này trả lời toàn bộ những câu hỏi đó — dành riêng cho người mới.
React là gì?
React (hay ReactJS) là một thư viện JavaScript mã nguồn mở được phát triển bởi Meta (Facebook) vào năm 2013, dùng để xây dựng giao diện người dùng (UI) cho website và ứng dụng web.
React là thư viện hay framework?
Đây là câu hỏi nhiều người nhầm lẫn:
- Thư viện (Library): Chỉ lo một phần cụ thể — React chỉ lo phần View/UI
- Framework: Cung cấp đầy đủ mọi thứ — routing, quản lý state, v.v.
React là thư viện, không phải framework. Muốn làm ứng dụng hoàn chỉnh cần kết hợp thêm: React Router (điều hướng), Redux/Zustand (quản lý state), v.v.
Virtual DOM là gì?
Một trong những lý do React nhanh là nhờ Virtual DOM. Thay vì cập nhật toàn bộ trang mỗi khi có thay đổi, React tạo ra một bản sao ảo của DOM, so sánh với trạng thái cũ, rồi chỉ cập nhật đúng phần thay đổi. Điều này giúp giao diện phản hồi mượt mà hơn, đặc biệt với các ứng dụng nhiều tương tác.
Tại sao nên học React?
React phổ biến đến mức nào?
- Stack Overflow Survey 2024: React là framework/library được dùng nhiều nhất — 42% developer toàn cầu
- npm downloads: Hơn 20 triệu lần tải/tuần
- GitHub Stars: 220.000+ stars
- Công ty lớn dùng React: Facebook, Instagram, Airbnb, Netflix, Uber
- Tại Việt Nam: FPT, VNG, Tiki, Shopee Vietnam, MoMo và hầu hết startup đều tuyển React Developer
Lợi ích thực tế khi học React
- Component tái sử dụng được: Viết một lần, dùng nhiều nơi
- Virtual DOM: Hiệu năng cao, cập nhật thông minh
- Ecosystem khổng lồ: Có sẵn thư viện cho mọi nhu cầu
- React Native: Học React web xong, làm được cả app mobile iOS/Android
- Nhu cầu tuyển dụng cao: Nhiều vị trí React Developer tại Việt Nam với mức lương tốt
Tìm hiểu nghề: Frontend Developer là gì?
Các khái niệm cơ bản trong React
Component — "Viên gạch LEGO" của React
Component là đơn vị cơ bản của React. Giống như LEGO — mỗi viên gạch (component) có thể tái sử dụng để tạo ra những công trình lớn hơn.
// Function Component — cách viết hiện đại
function HelloWorld() {
return <h1>Xin chào thế giới!</h1>;
}
// Dùng component nhiều lần
function App() {
return (
<div>
<HelloWorld />
<HelloWorld />
<HelloWorld />
</div>
);
}
JSX — Viết HTML trong JavaScript
JSX là cú pháp đặc biệt trông giống HTML nhưng thực ra là JavaScript:
// JSX cho phép dùng biến JS trong HTML
const name = "Nguyễn Văn A";
const greeting = <h1>Xin chào, {name}!</h1>;
// Lưu ý: class → className (class là từ khóa JS)
const button = <button className="btn-primary">Click</button>;
// Style là object JavaScript
const style = { color: "red", fontSize: "20px" };
const text = <p style={style}>Styled text</p>;
Props — Truyền dữ liệu vào Component
Props là cách truyền dữ liệu từ component cha xuống component con:
// Component nhận props
function UserCard({ name, age }) {
return (
<div className="card">
<h2>{name}</h2>
<p>Tuổi: {age}</p>
</div>
);
}
// Truyền props khác nhau để tái sử dụng component
function App() {
return (
<div>
<UserCard name="Nguyễn Văn A" age={22} />
<UserCard name="Trần Thị B" age={20} />
</div>
);
}
State với useState Hook
State là dữ liệu có thể thay đổi theo thời gian. Khi state thay đổi, React tự động cập nhật giao diện mà không cần thao tác DOM thủ công:
import { useState } from 'react';
function Counter() {
// [giá trị hiện tại, hàm cập nhật] = useState(giá trị ban đầu)
const [count, setCount] = useState(0);
return (
<div>
<p>Số lần click: {count}</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
Tìm hiểu thêm: DOM trong JavaScript — nền tảng mà React xây dựng trên đó.
React vs Vue vs Angular: Nên học gì?
| Tiêu chí | React | Vue | Angular |
|---|---|---|---|
| Loại | Library | Framework | Full Framework |
| Tạo bởi | Meta (Facebook) | Evan You | |
| Độ khó học | Trung bình | Dễ nhất | Khó nhất |
| Mức độ phổ biến | Số 1 (2024) | Số 2 | Số 3 |
| Job market | Nhiều nhất | Khá | Trung bình |
Lời khuyên: Học React trước — nhiều việc nhất, cộng đồng lớn nhất, dễ chuyển sang Vue/Angular sau nếu cần.
Bắt đầu với React: Tạo project đầu tiên
# Tạo project với Vite (nhanh nhất, được khuyến dùng)
npm create vite@latest my-app -- --template react
cd my-app
npm install
npm run dev
Mở trình duyệt tại http://localhost:5173 — React app đầu tiên của bạn đã chạy!
Cần biết gì trước khi học React?
Checklist bắt buộc:
- HTML & CSS cơ bản
- JavaScript: const/let, arrow function, array methods
- ES6 modules (import/export)
- DOM cơ bản (DOM trong JavaScript)
- Async/Await (xử lý bất đồng bộ)
Chưa biết JS? Xem: JavaScript là gì?
Lộ trình học React cho người mới
| Tuần | Nội dung |
|---|---|
| 1–2 | Component, JSX, Props |
| 3–4 | State (useState), xử lý sự kiện |
| 5–6 | useEffect, gọi API |
| 7–8 | React Router (điều hướng) |
| 9–10 | Context API (chia sẻ state) |
| 11+ | Next.js, TypeScript với React |
Xem thêm: Lộ trình Frontend 2026 và Học lập trình ở đâu tốt nhất?
Câu hỏi thường gặp (FAQ)
Cần biết JavaScript giỏi đến mức nào trước khi học React?
Không cần giỏi hoàn toàn, nhưng cần nắm vững: biến, hàm, mảng, object, arrow function, destructuring. Hoàn toàn có thể học React và JS song song!
React và React Native khác nhau thế nào?
React dành cho web. React Native dành cho mobile (iOS/Android). Cả hai dùng cùng ngôn ngữ JavaScript và JSX, nhưng các thành phần UI khác nhau.
Nên học React hay Next.js trước?
Học React trước. Next.js là framework xây dựng trên React, cần hiểu React vững mới học Next.js hiệu quả.