
Learning JavaScript by Focusing on the Essentials
sucoding
Javascript syntax that frontend beginners must learn! From basic to advanced, let's delve into the JavaScript language from A to Z!
입문
JavaScript
Khóa học React hoàn chỉnh, học các tính năng mới nhất của React 19 cùng với TypeScript! Từ cơ bản, bạn sẽ từng bước nắm vững kiến thức về quản lý trạng thái (Context, Redux Toolkit, Zustand), giao tiếp API (Fetch, Axios), các hook mới nhất (use, useActionState, useOptimistic, v.v.) và dự án thực tế, để tạo ra các ứng dụng React áp dụng ngay vào công việc.
Hiểu cú pháp cơ bản và hệ thống kiểu của TypeScript
Cấu trúc component React, cú pháp JSX, cách sử dụng props & state
React + TypeScript Kỹ thuật quản lý trạng thái (useState, useReducer)
Cú pháp cốt lõi và an toàn kiểu của kết xuất lặp, kết xuất có điều kiện.
Xử lý biểu mẫu và xác thực dựa trên TypeScript (có kiểm soát/không kiểm soát)
Các kỹ thuật styling mới nhất (CSS Module, Styled-component, emotion, vanilla extract, tailwind css
Quản lý trạng thái toàn cục bằng Context API
Quản lý trạng thái có cấu trúc bằng Redux Toolkit
Triển khai quản lý trạng thái đơn giản và nhanh chóng bằng Zustand
Tái sử dụng logic với Hook tùy chỉnh
Tối ưu hóa hiệu năng: useMemo, useCallback, React.memo
Thiết kế cấu trúc component và chiến lược sắp xếp cấu trúc thư mục
Tâm điểm của React 19 !!! Xử lý dữ liệu bất đồng bộ với use() + Suspense + ErrorBoundary
Triển khai UI lạc quan bằng useOptimistic()
Tích hợp xử lý biểu mẫu và quản lý trạng thái với useActionState()
Thực hiện định tuyến SPA bằng React Router (v7)
Xử lý chuyển trang và định tuyến động
Fetch và Axios: Lấy dữ liệu API và Xử lý lỗi
Kế hoạch và thiết kế dự án thực chiến dựa trên TypeScript
Triển khai ví dụ tích hợp Quản lý trạng thái + Giao tiếp API + Định tuyến
Quản lý và hoàn thiện cuối cùng mã dự án mang tính thực tế (node.js + express + mongodb + kakao + react 19))
React.JS dễ hiểu ngay cả với người không chuyên!!
🛩Bước 6 trong series lộ trình Frontend của Sucoding!! 🛩
Roadmap tổng hợp các khóa học Sucoding đã được ra mắt!
(📌 Nhấp vào hình ảnh để chuyển đến trang roadmap)
Toàn bộ khóa học được áp dụng giảm giá 30%,
bạn có thể học với giá rẻ hơn nhiều so với từng khóa học riêng lẻ.
Ngoài ra, dành cho những người tham gia lộ trình
tôi đang tiến hành sự kiện tặng ngẫu nhiên 1 trong 3 cuốn sách đã xuất bản của tôi, có chữ ký
cho các bạn! 😀
Liên kết lộ trình
➡https://www.inflearn.com/roadmaps/9957 (HTML + CSS + JS + TS + React + Vue)
➡https://www.inflearn.com/roadmaps/10015 (JS + TS + React)
2025 『Tự học lập trình React』 xuất bản! 🎉
Khóa học trực tuyến của Sucoding cũng đã được xuất bản thành sách.😎
Sucoding cũng là tác giả đã viết nhiều cuốn sách trong lĩnh vực frontend!
Khi kết hợp xem khóa học trực tuyến và sách cùng nhau, hiệu quả sẽ tăng lên gấp nhiều lần!!
React là một trong những thư viện phổ biến nhất để xây dựng giao diện người dùng,
TypeScript là ngôn ngữ mở rộng mạnh mẽ của JavaScript giúp tăng tính ổn định và khả năng dự đoán của code.
Khi sử dụng cả hai cùng nhau có thể giảm thiểu bug, dễ dàng tự động hoàn thành code và refactoring, thiết kế mạnh mẽ ngay cả với các dự án quy mô lớn.
Tuy nhiên, việc học React và TypeScript cùng lúc từ đầu không hề dễ dàng.
Bạn có thể cảm thấy bối rối không biết làm thế nào để gán kiểu cho các khái niệm như JSX, Props, State.
Trong khóa học này, chúng ta sẽ học kết hợp React + TypeScript được sử dụng nhiều nhất trong thực tế.
Loại bỏ hoàn toàn các suy luận kiểu phức tạp hoặc các tính năng nâng cao ít được sử dụng,
nội dung được cấu trúc tập trung vào thực hành mà ngay cả người mới bắt đầu cũng có thể làm quen nhanh chóng.
Các chủ đề cốt lõi được đề cập trong khóa học này như sau:
🧱 Xây dựng nền tảng vững chắc từ cơ bản
React 19(18+) dựa trên xu hướng phát triển mới nhất được phản ánh
Áp dụng TypeScript cho các component React.js
Hiểu cấu trúc cây component và cách định nghĩa
Cách khai báo Props, State, Event một cách an toàn về kiểu
Định nghĩa kiểu cho functional component
Children, Optional Props, Default Props và các pattern thực tế
Học khái niệm định tuyến phiên bản mới nhất react-router v7
⚙ Quản lý trạng thái và rendering
useState, useReducer를 sử dụng để định nghĩa trạng thái và xử lý kiểu dữ liệu
Cú pháp cốt lõi và tính an toàn kiểu của việc render lặp lại, render có điều kiện
🎨 Chiến lược tạo kiểu
Học các phương pháp styling đa dạng
(CSS Module, styled-components, emotion, vanilla-extract, Tailwind CSS, v.v.)
🔍 React Hooks và TypeScript
Cách sử dụng các hook chính như useState, useEffect, useReducer, useRef, useContext
React 19의 최신 훅 (use, useOptimistic, useActionState) xử lý kiểu dữ liệu
Áp dụng kiểu dữ liệu cho Custom Hook và Context API
🧠 Quản lý trạng thái toàn cục
redux-toolkit, zustand và các công cụ quản lý trạng thái toàn cục khác được sử dụng nhiều trong thực tế
📮 API & Xử lý biểu mẫu
React + TypeScript dựa trên Form xử lý (Controlled/Uncontrolled)
Cách định nghĩa kiểu phản hồi và xử lý lỗi khi tích hợp API
🛠 Cấu trúc tập trung vào thực hành
Rèn luyện cảm giác phát triển thực tế thông qua các ví dụ thực hành đa dạng dựa trên thiết kế
và tập trung vào những nội dung thường được sử dụng trong phát triển thực tế.
Thông qua khóa học này, bạn có thể hiểu một cách dễ dàng và hiệu quả các khái niệm cốt lõi và cú pháp của React(19) + TypeScript, và
tự nhiên phát triển năng lực phát triển có thể áp dụng ngay vào công việc thực tế. 🚀
React + TypeScript, bạn mới bắt đầu cũng đừng lo lắng.
Từ cơ bản từng bước một, được cấu trúc để có thể học từng phần một cách cùng nhau.
React là thư viện phổ biến nhất để tạo giao diện người dùng,
TypeScript là công cụ mạnh mẽ giúp xử lý React an toàn và có hệ thống hơn.
Nhưng khi lần đầu tiếp xúc với hai công nghệ này, chắc chắn sẽ nảy sinh những băn khoăn như sau:
"Làm thế nào để gắn type cho component?"
"Nên sử dụng type nào cho useState?"
Khóa học này được thiết kế để những người mới bắt đầu với cả React và TypeScript cũng
có thể bắt đầu một cách thoải mái,
với các ví dụ dễ hiểu và tập trung vào thực hành.
Sucoding tự tin khẳng định.
Khóa học này sẽ dạy React dễ hiểu nhất so với bất kỳ khóa học React nào khác trên thế giới.
React 19의 최신 기능부터
quản lý trạng thái, xử lý form, tích hợp API, đến dự án thực tế!
Học từng khái niệm cốt lõi một cách từ từ,
xây dựng khả năng áp dụng tự nhiên vào các dự án thực tế cho bạn.
"React + TypeScript an toàn hơn, thông minh hơn!"
Hãy nâng cấp kỹ năng phát triển của bạn lên một tầm cao mới thông qua khóa học này. 🎯
Khóa học này được tạo ra từ đầu dựa trên React 19. (Không phải quay bằng React 18 rồi nâng cấp lên 19. Thực sự mới nhất! 🚀)
Học các tính năng mới nhất như useOptimistic, useFormStatus, v.v. và có thể tự tin ứng phó với các dự án React 19.
JSX, Props, State, Event và các khái niệm thường được sử dụng trong React sẽ được học cùng với TypeScript.
Định nghĩa kiểu component, xử lý kiểu Hooks, ứng dụng Generic! Chọn lọc và tập trung học tập chỉ những công nghệ thực sự được sử dụng trong công việc thực tế.
Ngay cả người mới bắt đầu học React cũng có thể dễ dàng hiểu được thông qua việc giải thích các khái niệm từng bước và học tập theo phương pháp ví dụ → thực hành.
Khóa học thực hành tập trung vào việc học bằng cách tự tay lập trình, giúp bạn có thể áp dụng lý thuyết vào thực tế ngay lập tức.
Nếu bạn chỉ từng sử dụng React với JavaScript?
Bạn có thể hiểu rõ ràng bằng cách so sánh sự khác biệt và ưu điểm với TypeScript
Bạn cũng sẽ tự nhiên học được cách chuyển đổi mã JS hiện có sang TypeScript.
Áp dụng các tính năng mới nhất của React và TypeScript,
xây dựng nền tảng có thể áp dụng một cách dễ dàng cho các dự án trong tương lai.
Chúng tôi thường xuyên cập nhật các xu hướng phát triển mới nhất và nội dung cập nhật.
Chúng tôi sẽ chia sẻ những mẹo thực chiến độc quyền của các developer đang làm việc không có trong sách giáo khoa cùng với các phương pháp nâng cao hiệu quả công việc.
Không chỉ JavaScript, mà còn đưa ra định hướng để phát triển thành một frontend developer.
Cung cấp phản hồi nhanh chóng và Kind cho các câu hỏi của học viên.
Những lỗi thường mắc phải hoặc phần dễ nhầm lẫn được chỉ ra, tối đa hóa hiệu quả học tập của từng cá nhân.
Trước khi bắt đầu học React, chúng ta sẽ học cách thiết lập môi trường cần thiết.
Chúng ta sẽ tìm hiểu cách cài đặt VSCode cho từng hệ điều hành
và cài đặt Prettier cùng các extension để chuẩn bị cho việc học tập.
Trong chương này, chúng ta sẽ tìm hiểu cách khởi tạo ứng dụng React theo phương pháp hiện đại nhất. Chúng ta sẽ cấu hình môi trường phát triển dựa trên Vite để thay thế Create React App(CRA), và học các cài đặt cần thiết cho việc phát triển React.
So sánh hạn chế của CRA và ưu điểm của Vite
Hiểu về sự khác biệt giữa Webpack và Vite cũng như xu hướng của hệ sinh thái
Thiết lập dự án React nhanh chóng và trực quan với Vite
Nâng cao năng suất code thông qua snippet và user snippet
Tổ chức cấu trúc dự án ban đầu và nắm bắt luồng thực thi npm run dev
Ngoài ra, chúng tôi giới thiệu khái niệm và đặc điểm của cú pháp JSX, điều quan trọng nhất trong React. Bằng cách hiểu JSX kết hợp HTML và JavaScript như thế nào, có những đặc điểm cú pháp gì, bạn sẽ xây dựng nền tảng cho việc học các component sau này.
Trong React, component là đơn vị nhỏ nhất cấu thành UI và cũng là khái niệm cốt lõi. Trong chương này, chúng ta sẽ học từng bước về component là gì, cách hoạt động và cách cấu thành thông qua code thực tế.
Component là gì? Và tại sao nó lại quan trọng?
Điều kiện viết và cách cấu thành của functional component
Loại bỏ DOM không cần thiết bằng cách sử dụng React.Fragment
Cách tạo component mới và thiết kế cấu trúc thư mục
Hiểu khái niệm về root component và cấu trúc cây component
Ngoài ra, thông qua thực hành trực tiếp tạo ra các component và đặt chúng ở vị trí phù hợp, bạn sẽ rèn luyện được cảm giác về thiết kế dựa trên component.
Thông qua quá trình này, cách nhìn về component sẽ thay đổi, và bạn có thể tạo nền tảng để hiểu một cách tự nhiên các cấu trúc React phức tạp sau này.
Bây giờ chúng ta sẽ tìm hiểu một cách toàn diện về Props (thuộc tính) - một trong những khái niệm cốt lõi của React. Trong chương này, bạn sẽ học cách truyền và sử dụng dữ liệu giữa các component thông qua nhiều ví dụ và bài thực hành đa dạng.
Hiểu mối quan hệ giữa các component trong React: cấu trúc tổ tiên-cha-con
Cách xuất dữ liệu kiểu cơ bản và kiểu tham chiếu trong JSX
Nguyên lý cơ bản của việc truyền giá trị vào thuộc tính thẻ
Các phương thức và mẫu khác nhau để truyền dữ liệu thông qua Props
Destructuring assignment để tách props và cải thiện khả năng đọc hiểu
Cách dễ dàng suy luận và định nghĩa rõ ràng kiểu của props dựa trên TypeScript
Hiểu cách truyền props sử dụng toán tử spread (...
)
Mở rộng khả năng tái sử dụng component bằng cách sử dụng prop đặc biệt có tên children
So sánh sự khác biệt về vai trò của props
và children
Thông qua chương này, bạn sẽ hiểu một cách tự nhiên về luồng dữ liệu giữa các component React và phát triển khả năng thiết kế props có xem xét đồng thời tính an toàn kiểu dữ liệu và khả năng đọc hiểu.
Trong ứng dụng React, xử lý sự kiện là cốt lõi để triển khai tương tác với người dùng. Trong chương này, từ việc click button đến lan truyền sự kiện, chúng ta sẽ học cách xử lý sự kiện trong React theo góc nhìn có hệ thống và thực tế.
Cách kết nối sự kiện thông qua cú pháp JSX
Mẫu viết thuộc tính sự kiện và hàm xử lý sự kiện
Các phương pháp khác nhau để truyền tham số cho handler và cách thức được khuyến nghị
Luồng đọc props
bên trong handler và ví dụ thực tế
Cấu trúc truyền handler từ component cha xuống thông qua props
Cấu trúc và cách sử dụng đối tượng sự kiện (SyntheticEvent
)
Sự khác biệt và cách sử dụng của target
, currentTarget
Khái niệm truyền sự kiện: Hiểu về Bubbling và Capturing
Cách ngăn chặn hành động mặc định của sự kiện (e.preventDefault())
Cuối cùng, thông qua việc tự tay tạo button component và thực hành xử lý các sự kiện đa dạng, bạn sẽ tự nhiên nội hóa các pattern xử lý sự kiện.
Quản lý trạng thái trong React là chức năng cốt lõi giúp các component phản ứng và thay đổi theo tương tác của người dùng. Trong chương này, chúng ta sẽ tìm hiểu rộng rãi về khái niệm quản lý trạng thái, cách sử dụng và ứng dụng thực tế, tập trung vào useState
và useReducer
.
Lý do cần thiết của state và khái niệm cơ bản về giá trị state
Từ cách sử dụng cơ bản của hook useState
đến ứng dụng thực tế
Trạng thái đối tượng và mảng - những điểm cần lưu ý khi xử lý và cách thức hoạt động của re-rendering
setState
cách cập nhật và cập nhật hàm
Khái niệm độc lập của state và nâng state lên (lifting state up)
Đóng gói (encapsulation) để phân tách trách nhiệm quản lý trạng thái
Tạo ứng dụng counter để từng bước nâng cao kỹ năng quản lý state
useReducer
를 이용한 cấu trúc hóa logic trạng thái phức tạp
Chuyển đổi sang mô hình reducer và thực hiện nhiệm vụ thực tế
Sau khi hoàn thành chương này, bạn sẽ trở thành một nhà phát triển React có thể quản lý ổn định từ những thay đổi trạng thái đơn giản đến luồng dữ liệu phức tạp.
Giao diện người dùng (UI) thực tế được cấu thành bởi cấu trúc mà màn hình thay đổi có điều kiện tùy theo tình huống và render nhiều dữ liệu một cách lặp đi lặp lại. Trong chương này, chúng ta sẽ tập trung vào cách triển khai những UI như vậy trong React.
if
, switch
, toán tử ba ngôi (? :
), toán tử logic (&&
) và nhiều cách biểu diễn điều kiện khác nhau
So sánh thời điểm sử dụng và ưu nhược điểm của từng phương pháp điều kiện
Thực hành dựa trên các tình huống thực tế như đèn giao thông, trạng thái đăng nhập, xuất thông báo, v.v.
Cung cấp các mẹo thực tế như điều kiện lồng nhau, khả năng đọc hiểu, chiến lược tách biệt component
Xuất ra lặp lại component sử dụng map()
dựa trên dữ liệu mảng
Tầm quan trọng của thuộc tính key
trong việc render lặp lại và hiểu về phạm vi hợp lệ
Kết hợp lọc dữ liệu và render có điều kiện sử dụng filter()
và các phương pháp khác
Thông qua các bài tập thực tế như render danh sách công thức nấu ăn để nắm vững các mẫu lặp
Sau khi hoàn thành chương này, bạn sẽ có thể triển khai một cách tự nhiên các điều kiện phức tạp và vòng lặp bằng React, đồng thời có được kỹ năng thiết kế giao diện người dùng động với khả năng đọc hiểu tốt.
Trong chương này, chúng ta sẽ học rộng rãi về các kỹ thuật styling component đa dạng trong React.
Từ inline style đơn giản đến CSS-in-JS, Tailwind, styling hình ảnh, bạn sẽ học được tất cả các kỹ thuật styling thường gặp trong phát triển frontend thực tế thông qua thực hành.
Cách sử dụng inline style và CSS toàn cục
Đóng gói style theo từng component thông qua CSS Module
Quản lý class động sử dụng tiện ích classnames
🧩Nhiệm vụ: Trải nghiệm so sánh các phương pháp styling khác nhau thông qua việc triển khai UI nhóm nút
Cú pháp và cách sử dụng cơ bản của styled-components
props를 활용한 động적 스타일링
Cách sử dụng các tính năng nâng cao như keyframes
, as
và các hàm trợ giúp cũng như mixin
Quản lý style toàn cục và tổng hợp các mẹo
🧩Nhiệm vụ: Tạo giao diện đèn giao thông bằng styled-components
Triết lý cốt lõi và hệ thống chỉ thị của Tailwind
Phương pháp áp dụng lớp có điều kiện và chiến lược ứng dụng thực tế
🧩Nhiệm vụ: Hoàn thành giao diện máy tính với Tailwind
🧩Nhiệm vụ thưởng: Thử thách UI nâng cao với cảm giác thực chiến của Tailwind!
Các vấn đề cần xem xét khi render hình ảnh và phương pháp điều chỉnh CSS
🧩Nhiệm vụ: Triển khai giao diện người dùng hoạt hình đèn sáng lên
Cách áp dụng Google Web Fonts cũng được tổng hợp cùng
Thông qua chương này, bạn sẽ rèn luyện được con mắt để đánh giá công cụ styling nào phù hợp với dự án, và có được cảm giác thực chiến để triển khai UI đẹp mắt và dễ bảo trì.
Chương này là một dự án thực hành tập trung vào việc trực tiếp triển khai một ứng dụng máy tính thực sự hoạt động dựa trên nội dung đã học cho đến nay. Bạn sẽ trực tiếp trải nghiệm tất cả từ thiết kế component, quản lý state, xử lý sự kiện, tách biệt type, đến cấu trúc UI.
Tổng quan về nguyên lý hoạt động và cấu trúc của máy tính trước khi bắt đầu dự án
Thiết kế UI và cấu trúc hóa component
Sắp xếp vai trò và trách nhiệm của component thông qua quá trình refactoring
🧩Sử dụng TypeScript để phân tách rõ ràng các loại trạng thái và toán tử
Triển khai trực tiếp các chức năng chính như số, toán tử, dấu chấm, xóa, v.v.
Học quy trình xử lý bug và debugging thường gặp trong thực tế
Cài đặt và sử dụng React Developer Tools để trực quan hóa luồng thay đổi trạng thái
Cải thiện khả năng theo dõi trạng thái thời gian thực và phân tích cấu trúc component
Khi hoàn thành chương này, bạn sẽ trải nghiệm một lần tách biệt component, thiết kế state, debug, quản lý type vượt ra ngoài việc chỉ đơn thuần implement tính năng, và thông qua "niềm vui khi tính năng do chính mình tạo ra hoạt động", bạn sẽ có được sự tự tin với React.
Trong chương này, chúng tôi đã đưa vào những suy nghĩ thực tế về cách xử lý form trong React. Vượt ra ngoài việc xử lý input đơn giản, chúng tôi bao quát toàn bộ từ tính năng mới của React 19 (ref forwarding), tái sử dụng logic form thông qua custom hook, đến validation.
Thực hành toàn diện các thành phần điều khiển như input
, checkbox
, radio
, textarea
Hiểu về luồng xử lý đầu vào kết nối với state và re-rendering
🧩Nhiệm vụ: Triển khai giao diện form kết hợp các loại input điều khiển đa dạng
Truy cập giá trị đầu vào và phương thức điều khiển dựa trên DOM thông qua ref
So sánh ưu nhược điểm của phương pháp có kiểm soát/không kiểm soát và chiến lược tích hợp
🧩Nhiệm vụ: Xử lý hàng loạt nhiều đầu vào theo cách không kiểm soát
ref
là một pattern mới để truyền qua props (React 19)
Tách biệt xử lý đầu vào phức tạp thành custom hook và tăng tính tái sử dụng
Custom Hook nâng cao: Trừu tượng hóa trạng thái nội bộ, tích hợp validation tùy chỉnh
Các giá trị bắt buộc, độ dài, định dạng và các mẫu triển khai validation cơ bản khác
Viết hàm validation tùy chỉnh và tích hợp hook
🧩Nhiệm vụ: Hoàn thành form đăng nhập
→ Kiểm soát đầu vào + Xác thực + Xử lý trạng thái đến thực hành form toàn diện
Sau khi hoàn thành chương này, bạn sẽ tiến xa hơn từ việc xử lý đầu vào đơn giản,
có được năng lực cấu thành luồng form phức tạp và quản lý bằng cấu trúc có thể bảo trì một cách gọn gàng.
Đây là cơ hội quyết định để có thể tiếp thu cả kinh nghiệm kiểm soát đầu vào ở mức thực tế và công nghệ React mới nhất.
Trong chương này, chúng ta sẽ triển khai một ứng dụng quản lý công việc (Todo) thực sự hoạt động dựa trên các khái niệm cốt lõi của React đã học cho đến nay.
Đây là chương giúp bạn có thể trải nghiệm toàn bộ quy trình phát triển React thực tế từ đầu đến cuối bao gồm tách component, quản lý state, xử lý sự kiện, render danh sách, chỉnh sửa/xóa.
Bắt đầu từ thiết lập dự án để xây dựng cấu trúc cơ bản
Triển khai chức năng đăng ký công việc thông qua biểu mẫu nhập liệu
Hiển thị danh sách công việc bằng cách render danh sách
Thêm đánh dấu hoàn thành công việc thông qua checkbox và chức năng xóa
🧩Triển khai tính năng chỉnh sửa công việc để thành thạo logic cập nhật trạng thái và điều khiển UI
Vượt ra ngoài việc hiểu API đơn giản, thiết kế phân chia vai trò giữa các component và luồng dữ liệu
Ứng dụng React hoạt động dựa trên state - tự triển khai cấu trúc và luồng hoạt động từ đầu đến cuối
Dự án hoàn chỉnh gần như một nhiệm vụ với trải nghiệm tự tay tạo ra ứng dụng CRUD quy mô nhỏ
Sau khi hoàn thành chương này, bạn sẽ có được trải nghiệm dự án đầu tiên đầy tự tin trong việc thiết kế và hoàn thiện một ứng dụng bằng cách kết hợp các tính năng đa dạng của React.
Chương này không chỉ đề cập đến việc "render" đơn thuần của các component React, mà còn bao gồm cả quản lý side effect như xử lý tác vụ bất đồng bộ, sự kiện trình duyệt, API bên ngoài và chiến lược tối ưu hóa để giảm thiểu việc render không cần thiết.
useEffect
, useId
, v.v.)useId
hook để cải thiện khả năng truy cập và tạo định danh duy nhất
🧩Áp dụng useId
vào ứng dụng quản lý công việc để nắm bắt cảm giác tiếp cận thực tế trong công việc
Thời điểm hoạt động của useEffect
, nguyên lý của dependency array và các lý thuyết + thực hành khác
🧩Áp dụng useEffect
vào ứng dụng Todo để xử lý dữ liệu bên ngoài và phản ứng với thay đổi trạng thái
React.memo
, useCallback
, useMemo
)React.memo
để ngăn chặn việc render lại không cần thiết
Phân tích về khi nào memoization bị xóa và lý do tại sao
Sự khác biệt giữa [[CODE_1]]useCallback[[/CODE_2]] và [[CODE_2]]useMemo[[/CODE_2]] và thời điểm áp dụng
🧩Tối ưu hóa ứng dụng quản lý công việc với React.memo
và useCallback
để cảm nhận được sự tối ưu hóa
lazy
, suspense
, error-boundary
)Khái niệm cơ bản về lazy()
và Suspense
để lazy loading component
Cấu trúc UI trong thời gian chờ tải và chiến lược cải thiện trải nghiệm người dùng
Cách xử lý ErrorBoundary
để bảo vệ ứng dụng không bị sập khi xảy ra lỗi
Sau khi hoàn thành chương này, bạn sẽ có thể trực tiếp triển khai thiết kế có xem xét đến hiệu suất và khả năng bảo trì ngay cả trong cấu trúc component phức tạp,
và sẽ có được cảm giác vận hành ứng dụng React ở mức độ mà các dịch vụ thực tế yêu cầu.
Bạn muốn xử lý việc truyền dữ liệu sâu giữa các component một cách gọn gàng? Context API chính là câu trả lời.
Trong chương này, chúng ta sẽ học các khái niệm cốt lõi và cách sử dụng Context API như nền tảng quản lý trạng thái toàn cục, áp dụng vào dự án thực tế và phát triển khả năng xây dựng ứng dụng có cấu trúc.
Sự cần thiết của trạng thái toàn cục để giải quyết vấn đề props drilling
[[CODE_1]]createContext[[/CODE_2]], [[CODE_2]]useContext[[/CODE_2]] được sử dụng để thiết kế trạng thái toàn cục cơ bản
Vấn đề render không cần thiết và phương pháp cải thiện cấu trúc (memo
, tách biệt context
)
Kết hợp với reducer
để quản lý hiệu quả cả trạng thái toàn cục phức tạp
✅Bao gồm thực hành mẫu sử dụng hai hoặc nhiều Context cùng lúc
Phân tích mã UserProfile ban đầu → Tách biệt trạng thái bằng đối tượng context
🧩Kích thước chữ, chủ đề, cài đặt thông báo, cài đặt ngôn ngữ(i18n.ts) và các cài đặt môi trường người dùng khác được quản lý như trạng thái toàn cục
Sử dụng useLayoutEffect
để kiểm soát thứ tự render và tính phản hồi của layout
✅Học cách thiết kế cấu trúc trạng thái toàn cục có tính mở rộng cao thông qua Context API + thiết kế custom hook
Ứng dụng todo hiện có đưa vào trạng thái toàn cục → cải thiện cấu trúc chia sẻ trạng thái giữa các component
Cấu hình để nhiều component có thể sử dụng cùng một trạng thái và tăng cường khả năng thiết kế thực tế
Thông qua chương này, bạn sẽ thoát khỏi trạng thái đơn giản ở cấp độ component,
và có thể thực sự triển khai luồng và chiến lược quản lý trạng thái toàn cục nhìn toàn bộ ứng dụng.
Nếu bạn đã nắm được khái niệm về trạng thái toàn cục với Context API, thì giờ đây hãy trải nghiệm Redux Toolkit (RTK) để có cấu trúc quản lý trạng thái toàn cục có thể mở rộng và dễ bảo trì hơn.
Chương này sẽ học các tính năng cốt lõi của Redux Toolkit thông qua thực hành để có thể quản lý trạng thái phức tạp một cách có hệ thống.
Bối cảnh ra đời của Redux Toolkit và sự khác biệt với Redux truyền thống
Tạo store và cấu trúc hóa slice thông qua createSlice
Hiểu về luồng thay đổi trạng thái, dispatch action và luồng re-rendering
✅Redux DevTools kết nối để debug trạng thái
Truyền tham số, mở rộng đến logic xử lý bất đồng bộ sử dụng thunk
✅Thực hành cấu trúc nâng cao: chia tách slice thành nhiều phần và quản lý bằng cách hợp nhất
Tái cấu trúc trạng thái UserProfile dựa trên Redux
🧩Cấu trúc kích thước chữ, cài đặt thông báo, trạng thái theme theo từng slice
So với Context API khả năng kiểm soát cấu trúc mạnh mẽ hơn và tính bảo trì trải nghiệm so sánh
Chuyển đổi ứng dụng quản lý công việc hiện có sang Redux Toolkit
✅Triển khai logic trạng thái Todo, thêm/xóa/sửa theo đơn vị slice
Tăng cường kinh nghiệm quản lý code và chiến lược tách biệt component-store trong thực tế
Khi hoàn thành chương này, bạn sẽ tiến xa hơn từ việc quản lý trạng thái đơn giản
và đạt đến "mức độ có thể tự triển khai quản lý trạng thái toàn cục có cấu trúc theo đơn vị slice".
Đây cũng là chương thực hành được đặc biệt khuyến nghị cho những ai tò mò về cách sử dụng Redux Toolkit trong thực tế.
Bạn muốn tạo trạng thái toàn cục nhanh chóng mà không cần cấu hình phức tạp?
Trong chương này, chúng ta sẽ học về Zustand - thư viện quản lý trạng thái toàn cục nhẹ và trực quan.
Với cấu trúc nhẹ hơn Redux và mạnh mẽ hơn Context, đây là giải pháp quản lý trạng thái thay thế đang ngày càng được chú ý trong thực tế.
Khái niệm và triết lý của Zustand: "Global store với minimal boilerplate"
Cách sử dụng cơ bản và phương thức định nghĩa trạng thái
Cấu trúc cho phép truyền tham số vào trạng thái và dễ dàng tạo ra trạng thái phái sinh
✅persist
tính năng lưu trữ bền vững như localStorage
✅subscribeWithSelector
Tối ưu hóa re-render sử dụng
✅immer
를 통해 quản lý tính bất biến một cách trực quan
✅devtools
tích hợp để xử lý debug một cách dễ dàng
Triển khai lại trạng thái UserProfile
dựa trên Zustand
So với Redux/Context thì trải nghiệm sự khác biệt về lượng code, tính trực quan và khả năng mở rộng
Chuyển đổi ứng dụng todo hiện có sang dựa trên Zustand
[[SPAN_1]]✅[[/SPAN_2]]Triển khai trực tiếp các phương pháp đa dạng để component sử dụng trạng thái toàn cục
Cung cấp trải nghiệm triển khai với mã tối thiểu cho luồng thay đổi trạng thái → render UI → lưu/khôi phục
Sau khi hoàn thành chương này, bạn sẽ trở thành người có kinh nghiệm với cả ba công cụ quản lý state (Context API, Redux Toolkit, Zustand) và
có được tiêu chuẩn thực tế và cảm giác để đánh giá và lựa chọn công cụ state toàn cục phù hợp với từng tình huống.
Bây giờ là lúc biến ứng dụng React thành một "ứng dụng sống động".
Trong chương này, chúng ta sẽ học cách giao tiếp với server thực tế và kết nối trực tiếp vào dự án mini PostBrowser để hoàn thiện cấu trúc giao tiếp thực tế của ứng dụng React.
Khái niệm cơ bản và cấu trúc của giao tiếp HTTP
json-server
로 구성한 로컬 API 서버 → 🛠Xây dựng môi trường API dựa trên thực hành
Thunder Client를 활용한 API 테스트 tự động hóa
📝db.json
Cung cấp ghi chú cấu trúc file để hoàn thiện thực hành
Làm quen với cấu trúc các yêu cầu cơ bản (GET
, POST
, PUT
, DELETE
)
✅ Phản ánh cả các yếu tố thực tế như trạng thái loading, xử lý lỗi, hủy yêu cầu (AbortController
)
🧩Thực hiện toàn bộ các thao tác CRUD tập trung vào thực tế bằng fetch
và hiểu rõ luồng tích hợp với React
Tổng hợp từ cách sử dụng cơ bản axios
đến toàn bộ quy trình CRUD
✅axios.create()
thông qua cấu hình instance chung
✅Giới thiệu các chiến lược thực tế như interceptor, xử lý lỗi, thống nhất cấu trúc phản hồi
Cung cấp mã cơ bản → Áp dụng kết nối dữ liệu vào ứng dụng React
Render bài viết → triển khai phân trang → thêm chức năng tìm kiếm hoàn thành tuần tự
✅ Thông qua thực hành, trải nghiệm toàn diện tất cả về quản lý trạng thái, luồng patching, luồng cập nhật UI
Sau khi hoàn thành chương này, bạn sẽ có được khả năng thiết kế và triển khai trực tiếp các ứng dụng React thực tế giao tiếp với API, vượt xa những component đơn giản.
Đây là phần xây dựng nền tảng vững chắc để sau này có thể mở rộng với TanStack Query
hoặc quản lý state nâng cao.
Chương này tập trung vào các API liên quan đến form/bất đồng bộ được giới thiệu trong React 19,
và bạn sẽ học cách tối ưu hóa giao tiếp dữ liệu từ góc độ trải nghiệm người dùng thông qua thực hành theo từng tính năng + dự án thực tế TMDB.
useTransition
để xử lý chuyển đổi trạng thái UI mượt mà
🧩Học tập trải nghiệm thông qua thực hành so sánh trước và sau khi áp dụng Transition
useActionState
, form action
, useFormStatus
thông qua
→ Học cách xử lý form mới và luồng server action
Triển khai UI lạc quan với useOptimistic
✅ Thiết kế UX hiện đại phản ánh UI trước tiên ngay cả khi không có phản hồi trước các tác vụ bất đồng bộ
use()
thông qua xử lý dữ liệu trực tiếp dựa trên Promise và liên kết với Suspense
ErrorBoundary
và Suspense
kết hợp để xây dựng chiến lược xử lý lỗi + loading
Render danh sách phim → Phân trang → Triển khai đến cài đặt cuộn vô hạn
🧩Kết hợp Suspense + use() + ErrorBoundary để xây dựng ứng dụng phim với độ hoàn thiện cao trong thực tế
✅Trải nghiệm toàn bộ chu trình giao tiếp với server tích hợp cả luồng đăng ký thành viên
Sau khi hoàn thành chương này, bạn sẽ vượt qua mức độ đơn giản của fetch hay axios
và đạt đến trình độ có thể tự nhiên tích hợp các tính năng dẫn đầu về UX dữ liệu trong thời đại React 19 vào ứng dụng thực tế.
Đây là phần được khuyến khích mạnh mẽ cho những ai muốn triển khai ứng dụng có tính phản hồi UI lấy người dùng làm trung tâm và tính thời gian thực.
Trong ứng dụng React, router là thành phần cốt lõi chịu trách nhiệm về cấu trúc trang, luồng dữ liệu và trải nghiệm di chuyển của người dùng.
Trong chương này, chúng ta sẽ thiết kế cấu trúc SPA dựa trên các API mới nhất của React Router v7 và
xây dựng luồng chuyển đổi hoàn chỉnh bao gồm routing + tải dữ liệu + xử lý lỗi.
Cài đặt cơ bản và thiết lập router
Cấu hình nested route, index route, layout route
✅Học các mẫu đường dẫn thực tế như tiền tố route, segment động/tùy chọn, splat, v.v.
[[CODE_1]]NavLink[[/CODE_2]], [[CODE_2]]Link[[/CODE_2]]를 활용한 UI 중심의 điều khiển di chuyển
Xử lý di chuyển theo cách lập trình sử dụng hàm navigate()
✅Trải nghiệm sự khác biệt giữa phương thức gửi form truyền thống và cách tiếp cận dựa trên router
Thuộc tính loader
thông qua thiết kế luồng lấy dữ liệu theo đơn vị route
loader
에서 발생하는 yêu cầu bất đồng bộ → xử lý loading → xử lý lỗi
✅loader + suspense
, loader + errorElement
và triển khai cấu trúc thực tế khác
Sau khi hoàn thành chương này, từ thiết kế trang của ứng dụng React đến luồng dữ liệu, trải nghiệm người dùng
bạn sẽ có được khả năng thiết kế frontend để tự mình thiết kế và vận hành toàn bộ cấu trúc SPA.
Cho đến nay, tất cả nội dung đã học về thiết kế component, quản lý state, giao tiếp dữ liệu, tối ưu trải nghiệm người dùng, xử lý xác thực, triển khai
đều được tập hợp trong giai đoạn hoàn thiện dự án fullstack dựa trên React.
Trong chương này, bạn sẽ trực tiếp triển khai và trải nghiệm việc triển khai ứng dụng web dạng blog hoạt động như một dịch vụ thực tế.
Cấu hình MongoDB và tích hợp API backend
✅Triển khai đăng nhập Kakao: Từ đăng ký ứng dụng đến cấu hình toàn bộ luồng OAuth
✅Triển khai đăng ký/đăng nhập tự phát triển: Cấu thành form + Kết nối server + Quản lý trạng thái
Thực hành xác thực token, xử lý lỗi, debug luồng xác thực
Đăng bài viết → Liên kết preset đính kèm hình ảnh
✅ Thực hiện toàn bộ luồng CRUD bao gồm các chức năng sửa, xóa và xem chi tiết
Viết, xóa, render bình luận → Xử lý liên kết trạng thái và re-rendering
✅Nội dung chỉnh sửa backend được cung cấp cùng với ghi chú bài giảng
Tải danh sách bài viết chính theo từng trang
✅ Tăng cường khả năng thực chiến bằng cách tự thiết kế component phân trang
Hiểu về chiến lược xử lý phân trang có cấu trúc thay vì cuộn vô hạn
Cải thiện UI/UX phù hợp với luồng người dùng và bổ sung những điểm thiếu sót
✅ Frontend & Backend mỗi phần thực hành triển khai thực tế thông qua Vercel
Dựa trên tiêu chuẩn dịch vụ thực tế cấu hình domain, tối ưu hóa hình ảnh, kiểm tra cuối cùng
Khi hoàn thành chương cuối này, bạn sẽ vượt qua những bài tập đơn giản
để trở thành "nhà phát triển có thể tự xây dựng và vận hành dịch vụ web dựa trên xác thực người dùng".
Hãy tích hợp tất cả những gì đã học qua khóa học thành một dịch vụ hoàn chỉnh và kiểm chứng năng lực của bạn!
Tôi sẽ chỉ giới thiệu những phần có áp dụng thiết kế, bỏ qua những bài thực hành chưa áp dụng thiết kế!
Nếu làm cả những ví dụ chưa áp dụng thiết kế thì sẽ có hàng chục cái +
Tất cả những ví dụ có mật độ cao này sẽ giúp việc học từng bước của các bạn
Tôi tự tin rằng sẽ giúp đỡ bạn một cách hoàn hảo.
Giống như một tựa game kiệt tác được mọi người công nhận có thể không thú vị đối với tôi,
các khóa học cũng không phù hợp với tất cả mọi người như nhau.
Dù một khóa học có được khen ngợi nhiều đến mấy thì cũng có thể không phù hợp với tôi,
ngược lại, một khóa học bình thường với ai đó lại có thể trở thành khóa học tuyệt vời nhất đối với tôi.
Vì vậy tất cả các khóa học của tôi đều được công khai miễn phí ít nhất 10% trở lên.
Hãy trực tiếp nghe thử và xem phong cách của tôi có 'hợp' với bạn không!
Nếu chúng ta hợp nhau,
tôi sẽ hướng dẫn bạn con đường tắt nhanh nhất để trở thành frontend developer.
Hãy tin tưởng và theo tôi!🚀
Q. Tôi thực sự là người mới bắt đầu không biết gì cả. Liệu có ổn không?
A. Vâng. Thực sự không sao cả. Đây là khóa học được thiết kế đặc biệt để những người không biết gì có thể học được. Tuy nhiên, bạn cần có kiến thức tối thiểu về ngôn ngữ được sử dụng trong việc học.
Q. Có cần kiến thức nền tảng không?
A. Vâng, khóa học này nhất thiết phải có kiến thức tiên quyết về HTML5/CSS3/JavaScript/TypeScript.
Hệ điều hành và phiên bản (OS): Windows, macOS
Công cụ sử dụng: Visual Studio Code, Chrome
Cấu hình PC: Có thể sử dụng với cấu hình tối thiểu có thể lướt web.
Cung cấp tài liệu học tập cho từng bài giảng để tiến hành thực hành.
Hoàn toàn phù hợp cho người không chuyên ngành và người mới bắt đầu
Tuy nhiên, việc học HTML5/CSS3/JavaScript/TypeScript phải được thực hiện trước.
Khóa học này dành cho ai?
Người mới bắt đầu Frontend lần đầu học React
Lập trình viên đã quen với React nền JavaScript nhưng còn xa lạ với TypeScript.
Người muốn so sánh có hệ thống các công cụ quản lý trạng thái (Context, Redux Toolkit, Zustand)
Nhà phát triển muốn thử áp dụng các tính năng mới của React 19 vào thực tế
Ứng viên muốn hoàn thành dự án React cho portfolio
Cần biết trước khi bắt đầu?
html + css
JavaScript
typescript
4,370
Học viên
202
Đánh giá
74
Trả lời
4.9
Xếp hạng
7
Các khóa học
수코딩은 온라인과 오프라인을 병행하면서
코딩을 가르치는 활동을 하고 있습니다.
다년간의 오프라인 강의 경험을 바탕으로,
더 많은 사람들이 코딩을 쉽고 재미있게 배울 수 있도록
매일 고민하고, 끊임없이 노력하고 있습니다.
현재까지 다음과 같은 3권의 책을 출판하며
프런트엔드 강의 분야를 선도하고 있습니다:
또한, 유튜브 채널을 통해 다양한 무료 강의도 제공하고 있습니다.
👇 지금 바로 방문해 보세요
[유튜브 채널 링크]
Tất cả
316 bài giảng ∙ (26giờ 50phút)
Tài liệu khóa học:
6. GoodBye CRA
04:20
9. Khám phá Vite 7.0
04:15
16. JSX là gì?
02:23
17. Đặc điểm của JSX
03:46
21. React.Fragment
04:13
35. Phân rã cấu trúc
02:39
39. trẻ em
06:21
42. Kết nối sự kiện
03:41
56. useState - 1
05:32
57. useState - 2
04:22
71. useReducer - 1
01:21
72. useReducer - 2
05:33
87. lọc
06:06
91. CSS Module
05:31
92. classnames
08:37
148. useId
03:25
155. React.memo
05:59
157. useCallback
05:56
159. useMemo
03:55
160. lười biếng
04:02
161. căng thẳng
04:43
162. error-boundary
07:38
164. Context API
08:01
181. Tạo Redux Store
04:28
182. Tạo Redux Slice
10:40
185. Redux Devtools
02:56
186. Redux Thunk
07:32
202. json-server
03:29
203. thunder client
07:19
207. fetch - 3 (lỗi)
05:29
210. fetch - crud
10:01
211. axios - crud
08:57
225. useFormStatus
05:16
226. useOptimistic
03:47
231. ranh giới lỗi
05:24
232. mẹo
03:42
237. Cuộn vô hạn
08:21
272. Chính - 1
08:11
273. Chính - 2
06:45
274. Chính - 3
04:11
275. Chính - 4
06:54
279. Xóa bài đăng
02:25
289. Thay đổi UI
01:06
Tất cả
21 đánh giá
4.9
21 đánh giá
Đánh giá 5
∙
Đánh giá trung bình 5.0
Đã chỉnh sửa
5
I'm really satisfied because there are mission parts in the middle that allow me to check whether I can solve problems on my own and how well I understand the concepts. I'm really looking forward to the next lecture. I hope it comes out soon! Personally, I think with your teaching style, you would also create great data structures/algorithms lectures.
Hello GomCode! Thank you so much for your Kind words! I feel rewarded knowing that the mission part was helpful. I will continue to prepare content that brings fun and a sense of achievement to your learning. I will also take your valuable feedback about the data structures/algorithms lecture into consideration. I will work hard to prepare the next lecture so it meets your expectations!
Đánh giá 2
∙
Đánh giá trung bình 5.0
5
The kind tone makes it easy to concentrate and seems very delicate.
Hello, Ingu-nim! Thank you for your kind words! Your attentive listening gives me more energy. I will continue to strive to be helpful with meticulous and Kind lectures in the future 😊
Đánh giá 1
∙
Đánh giá trung bình 5.0
5
I'm listening because it's necessary for my job. It's my first time with web development, but you explain it so well, it's easy to understand! I'll listen well to the end.
It's great you're applying it directly to work! I've designed it for beginners to understand, so don't worry, let's stick with it to the end. I'm rooting for you 💪
Đánh giá 4
∙
Đánh giá trung bình 5.0
Đã chỉnh sửa
5
It's really great that you explain the basic concepts briefly and concisely from the beginning. I always feel this, but Sucoding's lectures feel like 'lectures that read books aloud.' When reading as text, it's difficult, but when you explain it verbally and show it with materials, it really resonates well! Additionally, I recently started studying for frontend technical interviews, and these contents were well integrated into the lectures as well. Thank you for the beneficial lectures in many ways.
Thank you for your valuable feedback! We are always striving to easily explain difficult parts through text. We will continue to improve so that we can be more helpful in the future! Thank you 😀
2.089.422 ₫
Hãy khám phá các khóa học khác của giảng viên!
Khám phá các khóa học khác trong cùng lĩnh vực!