COMBO - EVONDEV.COM - FULL WEB

Website: https://evondev.com/

➽ Giá full bộ: 4.999.000đ. Đang khuyến mãi chỉ hôm nay 199.000đ

➽ Học phí: Chỉ đóng 1 lần duy nhất, học TRỌN ĐỜI

➽ Update: Khóa học được upload các khóa mới đến MÃI MÃI.

➽ Thời gian học: Thời gian học là VĨNH VIỄN

➽ Hình thức học: Học online trên máy tính, điện thoại,... MỌI THIẾT BỊ 

🔖THÔNG TIN KHÓA HỌC

💖199k COMBO FULL EVONDEV.COM - ZALO 034.7872.192

🎯️Khóa 1: Khoá học tự học thiết kế website HTML CSS hiệu quả dành cho người mới

Nội dung khóa học này

️🏆🏆Chương 1: Kiến thức HTML cần nắm vững️🏆🏆


📚 Bài 1: Giới thiệu khoá học03:27

📚 Bài 2: Thiết lập code editor cơ bản08:01

📚 Bài 3: Cấu trúc một file HTML cơ bản như thế nào?03:39

📚 Bài 4: Các thẻ HTML cơ bản nên biết (phần 1)08:36

📚 Bài 5: Các thẻ HTML cơ bản nên biết (phần 2)07:25

📚 Bài 6: Thẻ Inline và thẻ Block khác nhau như thế nào?06:00

📚 Bài 7: Sự khác nhau giữa Class và Id06:35

📚 Bài 8: BEM là gì ? Tìm hiểu về BEM toàn tập07:49

📚 Bài 9: Thực hành phân tích giao diện cơ bản với BEM07:56

📚 Bài 10: Bài tập chương 101:29

📚 Bài 11: Giải bài tập chương 109:13

📚 Bài 12: Nắm vững Emmet cơ bản trong VSCode09:28


️🏆🏆Chương 2: Kiến thức CSS cơ bản phần 1️🏆🏆


📚 Bài 13: CSS reset là gì ? Tại sao phải dùng reset CSS?04:14

📚 Bài 14: Cấu trúc của 1 đoạn code trong CSS như thế nào?03:43

📚 Bài 15: Tìm hiểu thuộc tính color, các giá trị về màu sắc cần nắm vững04:25

📚 Bài 16: Nắm vững kiến thức về kích thước trong CSS07:18

📚 Bài 17: Làm hình nền với các thuộc tính về background05:27

📚 Bài 18: Các đơn vị trong css nên biết05:11

📚 Bài 19: Đơn vị em và rem khác nhau như thế nào?06:55

📚 Bài 20: Thuộc tính về border cơ bản06:52

📚 Bài 21: Nắm rõ thuộc tính margin09:54

📚 Bài 22: Hiểu về thuộc tính padding06:25

📚 Bài 23: Tìm hiểu về box-sizing trong CSS07:39

📚 Bài 24: Tìm hiểu thuộc tính display04:18

📚 Bài 25: Các thuộc tính liên quan tới Font cơ bản05:43

📚 Bài 26: Các thuộc tính liên quan tới chữ bạn cần biết08:58

📚 Bài 27: Tìm hiểu thuộc tính cho hình ảnh06:03

📚 Bài 28: Pseudo là gì ? Các pseudo cơ bản người mới học nên biết02:56

📚 Bài 29: Bài tập chương 2 (Phần 1)06:15

📚 Bài 30: Bài tập chương 2 (phần 2)06:03


️🏆🏆Chương 3: Kiến thức CSS cơ bản phần 2️🏆🏆


📚 Bài 31: Cách làm hình nền gradient, chữ gradient trong CSS07:01

📚 Bài 32: Hiển thị 2 hình nền với background-image03:53

📚 Bài 33: caniuse là gì ? Và tại sao bạn nên biết04:10

📚 Bài 34: Sự khác nhau giữa 3 thuộc tính opacity: 0, display:none, visibility:hidden03:24

📚 Bài 35: Tìm hiểu về shadow trong CSS06:29

📚 Bài 36: Sử dụng biến trong CSS như thế nào?04:38

📚 Bài 37: Hiểu rõ về độ ưu tiên trong CSS, xác định độ ưu tiên trong CSS đơn giản với VSCode09:20

📚 Bài 38: Nắm vững kiến thức về child selectors06:30

📚 Bài 39: Nắm vững kiến thức về type selectors06:41

📚 Bài 40: Thành thạo combinators trong CSS04:02

📚 Bài 41: Tìm hiểu thêm các selectors nâng cao06:16

📚 Bài 42: Nắm vững thuộc tính transition cơ bản07:31

📚 Bài 43: Bài tập chương 315:20


️🏆🏆Chương 4: Kiến thức CSS nâng cao️🏆🏆


📚 Bài 44: Thuộc tính transform để làm gì ? Tìm hiểu các giá trị hay dùng của transform11:52

📚 Bài 45: Tìm hiểu thuộc tính position relative04:16

📚 Bài 46: Master thuộc tính position absolute12:07

📚 Bài 47: Hiểu rõ position fixed hoạt động06:21

📚 Bài 48: Thực hành với thuộc tính position #104:33

📚 Bài 49: Thực hành với thuộc tính position #203:45

📚 Bài 50: Thực hành với thuộc tính position #302:52

📚 Bài 51: Thực hành với thuộc tính position #405:29

📚 Bài 52: Hiểu và nắm tốt pseudo :before vs :after khó nhằn trong CSS03:28

📚 Bài 53: Thực hành với pseudo before và after #104:55

📚 Bài 54: Thực hành với pseudo before và after #204:39

📚 Bài 55: Thực hành với pseudo before và after #306:51

📚 Bài 56: Thực hành với pseudo before và after #407:10

📚 Bài 57: Tại sao before và after quan trong và lưu ý khi làm với việc với thuộc tính transform04:01

📚 Bài 58: Animation là gì ? Tìm hiểu và nắm kiến thức về animation cơ bản09:05

📚 Bài 59: Thực hành với animation #106:49

📚 Bài 60: Thực hành với animation #207:50


️🏆🏆Chương 5: Flexbox toàn tập️🏆🏆


📚 Bài 61: Flexbox là gì ? Giới thiệu về Flexbox01:49

📚 Bài 62: Flexbox toàn tập #113:06

📚 Bài 63: Flexbox toàn tập #205:05

📚 Bài 64: Flexbox toàn tập #308:53

📚 Bài 65: Các thủ thuật chia layout hay mà bạn nên biết khi dùng flexbox12:33

📚 Bài 66: Cách vẽ tam giác bằng CSS và cách nó hoạt động05:51

📚 Bài 67: Sass là gì ? Giới thiệu và cài đặt03:33

📚 Bài 68: Tìm hiểu và nắm cơ bản kiến thức về Sass cho người mới15:44

📚 Bài 69: Các lỗi hay gặp khi cài đặt Sass và cách khắc phục02:08

📚 Bài 70: Thực hành code giao diện Dropdown #110:37

📚 Bài 71: Thực hành code giao diện Dropdown #210:23

📚 Bài 72: Thực hành code giao diện Dropdown #310:11

📚 Bài 73: Thực hành code giao diện đơn giản số 1 với flexbox #110:36

📚 Bài 74: Thực hành code giao diện đơn giản số 1 với flexbox #207:51

📚 Bài 75: Thực hành code giao diện đơn giản số 1 với flexbox #305:31

📚 Bài 76: Responsive là gì ? Giới thiệu về Responsive toàn tập07:23

📚 Bài 77: Thực hành code giao diện đơn giản số 1 sử dụng responsive10:05

📚 Bài 78: Thực hành code giao diện đơn giản số 213:49

📚 Bài 79: Thực hành code giao diện đơn giản số 313:21

📚 Bài 80: Tìm hiểu thêm các thuộc tính khác của flexbox12:10

📚 Bài 81: Thực hành code giao diện nâng cao phần 109:06

📚 Bài 82: Thực hành code giao diện nâng cao phần 210:48

📚 Bài 83: Thực hành code giao diện nâng cao phần 312:42

📚 Bài 84: Thực hành code giao diện nâng cao phần cuối12:35


️🏆🏆Chương 6: Các thẻ HTML về Form, Table️🏆🏆


📚 Bài 85: Tìm hiểu các thẻ về Form phần 112:27

📚 Bài 86: Tìm hiểu các thẻ về Form phần 208:49

📚 Bài 87: Hướng dẫn cách làm custom checkbox09:22

📚 Bài 88: Hướng dẫn cách làm custom radio10:07

📚 Bài 89: Hướng dẫn cách làm custom input file05:22

📚 Bài 90: Hướng dẫn cách làm custom checkbox toggle08:49

📚 Bài 91: Hướng dẫn code hiệu ứng cho input, textarea, button12:08

📚 Bài 92: Thực hành code giao diện form tổng hợp phần 111:22

📚 Bài 93: Thực hành code giao diện form tổng hợp phần 211:02

📚 Bài 94: Thực hành code giao diện form tổng hợp phần 313:42

📚 Bài 95: Thực hành code giao diện form tổng hợp phần cuối13:55

📚 Bài 96: Tìm hiểu các thẻ về bảng04:11

📚 Bài 97: Hướng dẫn code giao diện bảng phần 112:35

📚 Bài 98: Hướng dẫn code giao diện bảng phần 211:18

📚 Bài 99: Hướng dẫn làm responsive cho bảng04:27


️🏆🏆Chương 7: Các kiến thức bổ sung️🏆🏆


📚 Bài 100: Tìm thiết kế ở đâu để tập luyện kỹ năng HTML CSS ?03:42

📚 Bài 101: Chia sẻ các từ tiếng Anh hay gặp khi đặt tên với BEM

📚 Bài 102: Code siêu nhanh với VSCode Custom Snippets11:33

📚 Bài 103: Làm sao cải thiện con mắt thẩm mỹ02:53

📚 Bài 104: Một số kênh youtube hay về HTML CSS02:55

📚 Bài 105: Một số tài khoản Instagram hay mà các bạn nên theo dõi02:52

📚 Bài 106: Các extensions bổ ích mà bạn nên dùng03:30

📚 Bài 107: Chia sẻ kinh nghiệm làm sao code tốt hơn06:15

📚 Bài 108: Các thuật ngữ trong ngành web mà bạn nên biết05:35

📚 Bài 109: Codepen là gì ? Và vì sao bạn nên biết04:28

📚 Bài 110: Các kỹ năng khác nên có cho một Developer04:00

📚 Bài 111: Tìm hiểu thêm vài kiến thức về CSS khác06:00

📚 Bài 112: Làm sao để tuỳ biến giao diện cho Wordpress với CSS cơ bản05:39

📚 Bài 113: Vẽ vời với sức mạnh của thuộc tính box-shadow08:45

📚 Bài 114: Hướng dẫn  làm hình nền chéo với transform skew06:31

📚 Bài 115: Xử lý hình nền phức tạp hơn với thuộc tính clip-path10:13

📚 Bài 116: Tìm hiểu cách làm gradient cho border05:23

📚 Bài 117: Phân tích một Animation đường tròn hoạt động12:56

📚 Bài 118: Tìm hiểu backdrop-filter và cách làm responsive cho video theo tỉ lệ 16:912:19

📚 Bài 119: Lời cám ơn, chia sẻ cuối khoá, spoil sản phẩm sắp tới cực chất03:34

📚 Bài 120: CSS Grid cơ bản phần 109:40

📚 Bài 121: CSS Grid cơ bản phần 209:21

📚 Bài 122: CSS Grid cơ bản phần 310:41

📚 Bài 123: CSS Grid cơ bản phần 405:37

📚 Bài 124: CSS Grid cơ bản phần 506:38

📚 Bài 125: CSS Grid cơ bản phần 608:28

📚 Bài 126: CSS Grid cơ bản phần 711:44

📚 Bài 127: Hướng dẫn làm responsive hình ảnh, video theo tỉ lệ12:30

📚 Bài 128: Sử dụng biến hiệu quả trong CSS06:23

📚 Bài 129: Hướng dẫn tạo custom checkbox cách 208:09

📚 Bài 130: Xử lý input autofill background với box-shadow03:26

📚 Bài 131: Hướng dẫn tạo ribbon với thuộc tính clip-path06:16

📚 Bài 132: Hướng dẫn tuỳ biến thanh scrollbar trong CSS04:49

📚 Bài 133: Hiểu cơ bản về đường dẫn trong code04:10

📚 Bài 134: Các lỗi người mới hay gặp cần để ý06:12

📚 Bài 135: Hướng dẫn chia Form layout với CSS Grid cực hay10:13

📚 Bài 136: Các tips tricks hay trong CSS mà bạn nên biết

🎯️Khóa 2: Khoá học hướng dẫn cắt PSD sang HTML toàn tập với Gulp Pug Sass

Nội dung khóa học này

️🏆🏆Chương 1: Giới thiệu và cài đặt các công cụ️🏆🏆


📚 Bài 1: Lời cám ơn, hướng dẫn và giới thiệu khoá học05:30

📚 Bài 2: Các khái niệm cơ bản03:27

📚 Bài 3: Cài đặt Gulp boilerplate02:57

📚 Bài 4: Tìm hiểu cơ bản về Gulp boilerplate04:23

📚 Bài 5: Tìm hiểu file layout trong Pug04:29

📚 Bài 6: Xử lý các lỗi hay gặp khi làm việc với Pug07:11

📚 Bài 7: Kiến thức cơ bản về Pug cho người mới03:56

📚 Bài 8: Mixins trong Pug07:43

📚 Bài 9: Biến trong Pug03:41

📚 Bài 10: Điều kiện trong Pug05:11

📚 Bài 11: Tìm hiểu cấu trúc thư mục styles của Sass05:15

📚 Bài 12: Tạm kết chương 101:13


️🏆🏆Chương 2: Phân tích tổng quan thiết kế️🏆🏆


📚 Bài 13: Giới thiệu chương 201:30

📚 Bài 14: Phân tích màu sắc05:46

📚 Bài 15: Phân tích kiểu chữ05:59

📚 Bài 16: Phân tích khoảng cách04:30

📚 Bài 17: Thiết lập code cơ bản ban đầu04:46

📚 Bài 18: Hướng dẫn cắt ảnh trong Photoshop08:44

📚 Bài 19: Tạm kết chương 202:01


️🏆🏆Chương 3: Phân tích và code block Header️🏆🏆


📚 Bài 20: Phân tích tổng quan Header04:47

📚 Bài 21: Code block header cơ bản07:15

📚 Bài 22: Code block header top phần 105:15

📚 Bài 23: Code block header top phần 206:32

📚 Bài 24: Code block header top phần 305:39

📚 Bài 25: Code block header content phần 107:09

📚 Bài 26: Code block header content phần 207:04

📚 Bài 27: Code block header content phần 311:55

📚 Bài 28: Responsive block header phần 108:05

📚 Bài 29: Responsive block header phần 208:22

📚 Bài 30: Responsive block header phần 309:34

📚 Bài 31: Responsive block header phần 407:00

📚 Bài 32: Responsive block header phần 503:52

📚 Bài 33: Tối ưu menu trên màn hình điện thoại03:50

📚 Bài 34: Tối ưu code Pug với mixin09:06

📚 Bài 35: Viết mixin size với Sass07:42

📚 Bài 36: Viết mixin absolute center với Sass07:41


️🏆🏆Chương 4: Phân tích và code block About️🏆🏆


📚 Bài 37: Phân tích tổng quan block About05:27

📚 Bài 38: Code block box với mixin07:52

📚 Bài 39: Hoàn thành block Box06:51

📚 Bài 40: Code HTML block About phần 105:48

📚 Bài 41: Code HTML block About phần 203:59

📚 Bài 42: Code Sass block About phần 107:22

📚 Bài 43: Code Sass block About phần 204:21

📚 Bài 44: Hướng dẫn viết mixin responsive và mixin flexbox10:04

📚 Bài 45: Làm responsive block About07:51

📚 Bài 46: Áp dụng CSS Scroll snap vào layout07:06

📚 Bài 47: Tối ưu code Pug thành mixin09:03

📚 Bài 48: Tối ưu code block About08:27


️🏆🏆Chương 5: Phân tích và code block Number️🏆🏆


📚 Bài 49: Code block number phần 108:19

📚 Bài 50: Code block number phần 209:25


️🏆🏆Chương 6: Phân tích và code block Service️🏆🏆


📚 Bài 51: Phân tích và code HTML05:26

📚 Bài 52: Code giao diện với Sass phần 108:28

📚 Bài 53: Code giao diện với Sass phần 206:54

📚 Bài 54: Code Responsive phần 106:20

📚 Bài 55: Code Responsive phần 206:38

📚 Bài 56: Tối ưu code cho block Service04:55


️🏆🏆Chương 7: Phân tích và code block Device️🏆🏆


📚 Bài 57: Code block device phần 110:43

📚 Bài 58: Code block device phần 207:00

️🏆🏆Chương 8: Phân tích và code block Wedo️🏆🏆

📚 Bài 59: Phân tích và code HTML07:46

📚 Bài 60: Code Sass phần 108:06

📚 Bài 61: Code Sass phần 206:16

📚 Bài 62: Code Sass phần 307:39

📚 Bài 63: Code Sass phần 406:50

📚 Bài 64: Code Sass phần 507:33


️🏆🏆Chương 9: Phân tích và code block Quote️🏆🏆


📚 Bài 65: Phân tích và code block quote phần 105:59

📚 Bài 66: Phân tích và code block quote phần 209:55

📚 Bài 67: Phân tích và code block quote phần 309:32


️🏆🏆Chương 10: Phân tích và code block Team️🏆🏆


📚 Bài 68: Phân tích và code block Team phần 109:34

📚 Bài 69: Phân tích và code block Team phần 211:50

📚 Bài 70: Phân tích và code block Team phần 309:11

📚 Bài 71: Phân tích và code block Team phần 409:33

📚 Bài 72: Phân tích và code block Team phần 510:58

📚 Bài 73: Phân tích và code block Team phần 609:54

📚 Bài 74: Phân tích và code block Brands03:12


️🏆🏆Chương 11: Phân tích và code block Work️🏆🏆


📚 Bài 75: Phân tích và code block Work phần 108:52

📚 Bài 76: Phân tích và code block Work phần 211:29

📚 Bài 77: Phân tích và code block Work phần 306:47

📚 Bài 78: Phân tích và code block Work phần 408:56

📚 Bài 79: Phân tích và code block Work phần 507:27

📚 Bài 80: Phân tích và code block Work phần 611:55


️🏆🏆Chương 12: Phân tích và code block People️🏆🏆


📚 Bài 81: Phân tích và code block People phần 107:49

📚 Bài 82: Phân tích và code block People phần 207:03

📚 Bài 83: Phân tích và code block People phần 308:30

📚 Bài 84: Phân tích và code block People phần 406:36

📚 Bài 85: Phân tích và code block People phần 505:01


️🏆🏆Chương 13: Phân tích và code block Story️🏆🏆


📚 Bài 86: Phân tích và code block Story phần 107:28

📚 Bài 87: Phân tích và code block Story phần 208:17

📚 Bài 88: Phân tích và code block Story phần 305:07

📚 Bài 89: Phân tích và code block Story phần 408:42

📚 Bài 90: Phân tích và code block Story phần 511:50


️🏆🏆Chương 14: Phân tích và code block Footer️🏆🏆


📚 Bài 91: Phân tích và code block Footer phần 109:40

📚 Bài 92: Phân tích và code block Footer phần 213:07

📚 Bài 93: Phân tích và code block Footer phần 306:25

📚 Bài 94: Phân tích và code block Footer phần 406:38

📚 Bài 95: Phân tích và code block Footer phần 510:49

📚 Bài 96: Phân tích và code block Footer phần 606:22


️🏆🏆Chương 15: Chèn thư viện slick slider️🏆🏆


📚 Bài 97: Sử dụng slick slider vào dự án phần 108:35

📚 Bài 98: Sử dụng slick slider vào dự án phần 210:52

📚 Bài 99: Sử dụng slick slider vào dự án phần 312:59


️🏆🏆Chương 16: Tối ưu code và testing️🏆🏆


📚 Bài 100: Tối ưu nội dung dự án12:46

📚 Bài 101: Testing dự án trên các trình duyệt và fix lỗi15:31

📚 Bài 102: Object là gì ? Object cho người mới03:10

📚 Bài 103: Áp dụng object vào mixin trong pug05:13

📚 Bài 104: Tìm hiểu object trong Sass03:49

📚 Bài 105: Áp dụng object vào mixin trong Sass12:45

📚 Bài 106: Tối ưu mixin hoverEffect06:38


️🏆🏆Chương 17: Git, Github và deploy dự án cho người mới️🏆🏆


📚 Bài 107: Git là gì ? Github là gì ?03:10

📚 Bài 108: Cài đặt Git và tạo tài khoản Github04:19

📚 Bài 109: Đưa dự án lên github toàn tập08:35

📚 Bài 110: Deploy dự án bằng Vercel toàn tập08:05

🎯️Khóa 3: Khoá học tự học Javascript hiệu quả và dễ dàng cho người mới

Nội dung khóa học này

️️🏆🏆Chương 1: Biến và các kiểu dữ liệu thường gặp️🏆🏆


📚 Bài 1: Lời giới thiệu, cám ơn và hướng dẫn quan trọng cần nắm05:58

📚 Bài 2: 2 cách chèn Javascript vào HTML03:14

📚 Bài 3: Tìm hiểu hàm console.log02:04

📚 Bài 4: Kiến thức về biến cần nắm04:05

📚 Bài 5: Khai báo biến với const và let04:37

📚 Bài 6: Hoisting là gì ?03:48

📚 Bài 6.5: Bổ sung kiến thức hoisting04:45


️🏆🏆Chương 2: Các kiểu dữ liệu thông dụng trong Javascript️🏆🏆


📚 Bài 7: Giới thiệu kiểu dữ liệu string03:01

📚 Bài 8: Sử dụng string cơ bản06:43

📚 Bài 9: index và length trong string cần nắm03:31

📚 Bài 10: Các phương thức trong string phần 109:22

📚 Bài 11: Các phương thức trong string phần 208:57

📚 Bài 12: Phân biệt substr và substring06:19

📚 Bài 13: Sử dụng nhiều phương thức của string cùng lúc05:55

📚 Bài 14: Tìm hiểu kiểu dữ liệu number phần 114:45

📚 Bài 15: Tìm hiểu kiểu dữ liệu number phần 210:42

📚 Bài 16: Tìm hiểu kiểu dữ liệu khác07:14


️🏆🏆Chương 3: Toán tử so sánh, coercion, câu điều kiện️🏆🏆


📚 Bài 17: Tìm hiểu hàm Number05:40

📚 Bài 18: Tìm hiểu hàm String04:16

📚 Bài 19: Tìm hiểu hàm Boolean03:25

📚 Bài 20: Type coercion là gì ?08:53

📚 Bài 21: Toán tử so sánh cơ bản03:23

📚 Bài 22: Toán tử logic cơ bản05:30

📚 Bài 23: So sánh == vs ===08:32

📚 Bài 24: Câu điều kiện cơ bản07:31

📚 Bài 25: alert, prompt và confirm08:18

📚 Bài 26: Bài tập về câu điều kiện09:32

📚 Bài 27: Tìm hiểu switch case10:05

📚 Bài 28: Ternary operator06:51


️🏆🏆Chương 4: Hàm toàn tập️🏆🏆


📚 Bài 29: Function cơ bản cho người mới10:54

📚 Bài 30: Funtion cơ bản cho người mới phần 208:37

📚 Bài 31: Funtion cơ bản cho người mới phần 305:29

📚 Bài 32: Global scope và function scope03:32

📚 Bài 33: Block scope và từ khoá var06:09

📚 Bài 34: Closure cơ bản12:10

📚 Bài 35: Closure cơ bản tiếp theo03:25

📚 Bài 36: Bài tập về function số 106:12

📚 Bài 37: Bài tập về function số 207:17

📚 Bài 38: Bài tập về function số 305:49

📚 Bài 39: Arrow function cơ bản05:42


️🏆🏆Chương 5: Các hàm về thời gian️🏆🏆


📚 Bài 40: Giới thiệu về Date object04:25

📚 Bài 41: Timestamp và epochtime04:53

📚 Bài 42: 4 cách khởi tạo Date object nên biết04:50

📚 Bài 43: Các hàm get trong Date07:19

📚 Bài 44: Các hàm set trong Date05:28

📚 Bài 45: Tìm hiểu utc trong Date02:32

📚 Bài 46: Tìm hiểu các hàm khác trong Date04:57

📚 Bài 47: Bài tập đơn giản về Date object07:16

📚 Bài 48: Tìm hiểu setTimeout và setInterval06:21

📚 Bài 49: Bài tập chương 502:28

📚 Bài 50: Giải bài tập chương 5 bài 105:51

📚 Bài 51: Giải bài tập chương 5 bài 208:34

📚 Bài 52: Giải bài tập chương 5 bài 307:11

📚 Bài 53: Giải bài tập chương 5 bài 3 phần 211:24

📚 Bài 54: Giải bài tập chương 5 bài 3 phần 305:19


️🏆🏆Chương 6: Mảng và vòng lặp cơ bản toàn tập️🏆🏆


📚 Bài 55: Giới thiệu về mảng05:46

📚 Bài 55.5: Giới thiệu về mảng bổ sung06:43

📚 Bài 56: Các phương thức trong mảng phần 105:03

📚 Bài 57: Các phương thức trong mảng phần 205:21

📚 Bài 57.5: Các phương thức trong mảng phần 2 bổ sung02:47

📚 Bài 58: Tìm hiểu phương thức slice07:20

📚 Bài 59: Tìm hiểu phương thức splice07:57

📚 Bài 60: Tìm hiểu phương thức sort10:10

📚 Bài 61: Tìm hiểu phương thức find04:45

📚 Bài 62: Tìm hiểu phương thức findIndex02:29

📚 Bài 63: Tìm hiểu phương thức sort bổ sung03:20

📚 Bài 64: Tìm hiểu phương thức map06:54

📚 Bài 65: Tìm hiểu phương thức forEach03:59

📚 Bài 66: Tìm hiểu phương thức filter05:23

📚 Bài 67: Tìm hiểu phương thức some và every05:33

📚 Bài 68: Tìm hiểu phương thức reduce06:04

📚 Bài 69: Bài tập về mảng số 109:14

📚 Bài 70: Bài tập về mảng số 208:24

📚 Bài 71: Bài tập về mảng số 305:50

📚 Bài 72: By value và by references04:16

📚 Bài 73: Cách so sánh 2 mảng cơ bản07:03

📚 Bài 74: 2 cách để sao chép mảng cần biết04:58

📚 Bài 75: 2 cách để gộp mảng cần nắm03:42

📚 Bài 76: Destructuring là gì ?04:06

📚 Bài 77: Tìm hiểu rest parameter03:32

📚 Bài 78: Vòng lặp for cơ bản phần 107:16

📚 Bài 79: Vòng lặp for cơ bản phần 208:46

📚 Bài 80: Vòng lặp for cơ bản phần 305:52

📚 Bài 81: Vòng lặp for cơ bản phần 405:32

📚 Bài 82: Bài tập cơ bản về vòng lặp for08:06

📚 Bài 83: Vòng lặp while và do while09:32

📚 Bài 84: Vòng lặp for of04:02

📚 Bài 85: Bài tập chương 6 số 1 và 206:44

📚 Bài 86: Bài tập chương 6 số 306:30

📚 Bài 87: Bài tập chương 6 số 408:04

📚 Bài 88: Bài tập chương 6 số 506:26

📚 Bài 89: Bài tập chương 6 số 607:16

📚 Bài 90: Bài tập chương 6 số 709:00


️🏆🏆Chương 7: Object cơ bản cho người mới️🏆🏆


📚 Bài 91: Tìm hiểu object cơ bản phần 104:50

📚 Bài 92: Tìm hiểu object cơ bản phần 208:24

📚 Bài 93: Tìm hiểu for in trong object03:53

📚 Bài 94: Tìm hiểu phương thức Object.keys02:09

📚 Bài 95: Tìm hiểu phương thức Object.values01:31

📚 Bài 96: Tìm hiểu phương thức Object.entries02:30

📚 Bài 97: Tìm hiểu phương thức Object.assign02:50

📚 Bài 98: Tìm hiểu phương thức Object.freeze02:44

📚 Bài 99: Tìm hiểu phương thức Object.seal02:17

📚 Bài 100: Cách sao chép một object02:39

📚 Bài 101: Cách sao chép một object phức tạp06:50

📚 Bài 102: Từ khoá this trong object03:27

📚 Bài 103: Optional chaining06:57

📚 Bài 104: Destructuring object10:03

📚 Bài 105: Bài tập chương 7 số 105:22

📚 Bài 106: Bài tập chương 7 số 208:11

📚 Bài 107: Bài tập chương 7 số 307:13

📚 Bài 108: Bài tập chương 7 số 407:14


️🏆🏆Chương 8: DOM toàn tập️🏆🏆


📚 Bài 109: DOM là gì ?02:27

📚 Bài 110: document.querySelector05:19

📚 Bài 111: document.querySelectorAll05:08

📚 Bài 112: document.getElementsByClassName05:03

📚 Bài 113: document.getElementsByTagName02:26

📚 Bài 114: document.getElementById03:43

📚 Bài 115: getAttribute07:34

📚 Bài 116: setAttribute04:50

📚 Bài 117: removeAttribute02:20

📚 Bài 118: hasAttribute02:04

📚 Bài 119: Thuộc tính textContent03:45

📚 Bài 120: Thuộc tính innerText02:51

📚 Bài 121: Thuộc tính innerHTML02:54

📚 Bài 122: Các phương thức về class phần 106:53

📚 Bài 123: Các phương thức về class phần 206:46

📚 Bài 124: Ví dụ toggle menu đơn giản với toggle class05:40

📚 Bài 125: document.createElement và document.appendChild03:57

📚 Bài 126: Thực hành phương thức document.appendChild06:46

📚 Bài 127: document.createTextNode02:14

📚 Bài 128: Phương thức cloneNode03:10

📚 Bài 129: Phương thức hasChildNodes02:15

📚 Bài 130: Phương thức insertAdjacentText04:23

📚 Bài 131: Phương thức insertAdjacentElement02:41

📚 Bài 132: Phương thức insertAdjacentHTML04:09

📚 Bài 133: Traversing DOM phần 105:47

📚 Bài 134: Traversing DOM phần 210:15

📚 Bài 135: Traversing DOM phần 304:09

📚 Bài 136: Bài tập Active Modal phần 107:23

📚 Bài 137: Bài tập Active Modal phần 210:26

📚 Bài 138: Bài tập Notification phần 107:25

📚 Bài 139: Bài tập Notification phần 209:34

📚 Bài 140: Các thuộc tính liên quan tới offset05:56

📚 Bài 141: Các thuộc tính liên quan tới client03:46

📚 Bài 142: Các thuộc tính liên quan tới window03:38

📚 Bài 143: Tìm hiểu getBoundingClientRect()04:08

📚 Bài 144: Sự khác nhau giữa NodeList và HTMLCollection05:39

📚 Bài 145: Sự khác nhau giữa parentNode và parentElement03:19

📚 Bài 146: Tìm hiểu document.title và document.head04:58

📚 Bài 147: Tìm hiểu thêm phương thức insertBefore05:46

📚 Bài 148: Tìm hiểu thêm phương thức replaceChild05:59


️🏆🏆Chương 9: Tất tần tật về sự kiện trong Javascript️🏆🏆


📚 Bài 149: Giới thiệu04:11

📚 Bài 150: Sự kiện click04:51

📚 Bài 151: Bubbling trong click05:10

📚 Bài 152: Capturing trong click05:30

📚 Bài 153: Sự khác nhau giữa target và currentTarget04:15

📚 Bài 154: preventDefault() để làm gì ?03:03

📚 Bài 155: Bài tập Random background color08:54

📚 Bài 156: Bài tập Counter09:22

📚 Bài 157: Tìm hiểu object style03:59

📚 Bài 158: Truy xuất giá trị của custom attribute như nào?05:45

📚 Bài 159: Bài tập Toggle menu phần 105:55

📚 Bài 160: Bài tập Toggle menu phần 208:26

📚 Bài 161: Bài tập Tab phần 106:43

📚 Bài 162: Bài tập Tab phần 206:38

📚 Bài 163: Bài tập Tab phần 304:05

📚 Bài 164: Bài tập Accordion phần 107:27

📚 Bài 165: Bài tập Accordion phần 208:42

📚 Bài 166: Bài tập Accordion phần 302:19

📚 Bài 167: Bài tập Modal phần 106:11

📚 Bài 168: Bài tập Modal phần 208:03

📚 Bài 169: Bài tập Lightbox phần 106:24

📚 Bài 170: Bài tập Lightbox phần 206:17

📚 Bài 171: Bài tập Lightbox phần 306:17

📚 Bài 172: Bài tập Lightbox phần 404:05

📚 Bài 173: Bài tập Lightbox phần 504:53

📚 Bài 174: Bài tập Dropdown phần 108:01

📚 Bài 175: Bài tập Dropdown phần 206:10

📚 Bài 176: Sự khác nhau giữa load và DOMContentLoaded06:17

📚 Bài 177: Sự kiện di chuyển chuột cần nắm06:06

📚 Bài 178: Sự khác nhau giữa clientXY và pageXY06:07

📚 Bài 179: Bài tập Tooltip phần 104:59

📚 Bài 180: Bài tập Tooltip phần 208:51

📚 Bài 181: Bài tập Tooltip phần 306:56

📚 Bài 182: Bài tập Tooltip phần 402:39

📚 Bài 183: Bài tập Link hover effect phần 108:34

📚 Bài 184: Bài tập Link hover effect phần 203:46

📚 Bài 185: Bài tập Image Zoom hover effect phần 108:02

📚 Bài 186: Bài tập Image Zoom hover effect phần 208:05

📚 Bài 187: Bài tập Image Zoom hover effect phần 307:39

📚 Bài 188: Bài tập Image Zoom hover effect phần 406:17

📚 Bài 189: Bài tập Image Zoom hover effect phần 504:08

📚 Bài 190: Sự kiện keydown07:53

📚 Bài 191: Sự kiện keyup06:30

📚 Bài 192: Sự kiện keypress05:52

📚 Bài 193: Sự kiện change05:07

📚 Bài 194: Sự kiện focus và blur02:19

📚 Bài 195: Sự kiện submit trong form05:36

📚 Bài 196: Truy xuất các giá trị trong cơ bản08:51

📚 Bài 197: Truy xuất giá trị của checkboxes như thế nào?04:04

📚 Bài 198: Ví dụ về Form Validation cơ bản09:17

📚 Bài 199: Bài tập Show hide password đơn giản09:40

📚 Bài 200: Bài tập Highlight search text phần 104:23

📚 Bài 201: Bài tập Highlight search text phần 207:31

📚 Bài 202: Bài tập Highlight search text phần 307:57

📚 Bài 203: Bài tập Highlight search text phần 404:32

📚 Bài 204: Bài tập Highlight search text phần 508:06

📚 Bài 205: Giới thiệu sự kiện scroll02:46

📚 Bài 206: Debounce là gì?06:23

📚 Bài 207: window.pageXOffset và window.pageYOffset03:57

📚 Bài 208: Các phương thức, thuộc tính về scroll khác06:28

📚 Bài 209: offsetWidth và scrollWidth03:58

📚 Bài 210: scrollIntoView()02:32

📚 Bài 211: Bài tập Fixed Header phần 106:50

📚 Bài 212: Bài tập Fixed Header phần 206:14

📚 Bài 213: Bài tập Progress Bar phần 108:33

📚 Bài 214: Bài tập Progress Bar phần 204:13

📚 Bài 215: Bài tập Tab Scroll phần 107:08

📚 Bài 216: Bài tập Tab Scroll phần 206:38

📚 Bài 217: Bài tập Tab Scroll nâng cao phần 107:06

📚 Bài 218: Bài tập Tab Scroll nâng cao phần 206:16

📚 Bài 219: Bài tập Tab Scroll nâng cao phần 307:46

📚 Bài 220: Bài tập Tab Scroll nâng cao phần 407:32

📚 Bài 221: Bài tập Tab Scroll nâng cao phần 506:58

📚 Bài 222: localStorage toàn tập06:36

📚 Bài 223: Bài tập todoList phần 107:41

📚 Bài 224: Bài tập todoList phần 206:30

📚 Bài 225: Bài tập todoList phần 306:52

📚 Bài 226: Bài tập todoList phần 408:03

📚 Bài 227: Bài tập todoList phần 503:33

📚 Bài 228: Bài tập Sweet Alert phần 107:26

📚 Bài 229: Bài tập Sweet Alert phần 205:29


️🏆🏆Chương 10: Regular expression cơ bản️🏆🏆


📚 Bài 230: Giới thiệu Regular expression04:32

📚 Bài 231: Anchor04:13

📚 Bài 232: Ranges06:37

📚 Bài 233: Meta characters09:12

📚 Bài 234: Quantifiers08:15

📚 Bài 235: Quantifiers tiếp theo06:29

📚 Bài 236: Group03:01

📚 Bài 237: Boundaries và escaping characters05:34

📚 Bài 238: Sử dụng phương thức replace với Regex05:59

📚 Bài 239: Bài tập email validation phần 105:52

📚 Bài 240: Bài tập email validation phần 206:23

📚 Bài 241: Bài tập email validation phần 306:41

📚 Bài 242: Bài tập password validation phần 105:26

📚 Bài 243: Bài tập password validation phần 207:36

📚 Bài 244: Bài tập password validation phần 309:08

📚 Bài 245: Bài tập password validation phần 406:24


️🏆🏆Chương11: Kiến thức bổ sung và tạm kết phần 1️🏆🏆


📚 Bài 246: Tìm hiểu defer trong script07:22

📚 Bài 247: Tìm hiểu async trong script03:41

📚 Bài 248: Tìm hiểu removeEventListener05:16

📚 Bài 249: Sự khác nhau giữa onclick và addEventListener06:48

📚 Bài 250: Bài tập Animate on scroll phần 106:39

📚 Bài 251: Bài tập Animate on scroll phần 205:33

📚 Bài 252: Bài tập Countdown timer phần 108:12

📚 Bài 253: Bài tập Countdown timer phần 206:37

📚 Bài 254: Bài tập Countdown timer phần 306:33

📚 Bài 255: Bài tập Countdown timer phần 407:39

📚 Bài 256: Bài tập Simple slider phần 104:49

📚 Bài 257: Bài tập Simple slider phần 206:09

📚 Bài 258: Bài tập Simple slider phần 306:28

📚 Bài 259: Bài tập Simple slider phần 404:57

📚 Bài 260: Bài tập Simple slider phần 507:16

📚 Bài 261: Bài tập Simple slider phần 608:42

📚 Bài 262: Bài tập MP3 player phần 105:55

📚 Bài 263: Bài tập MP3 player phần 206:04

📚 Bài 264: Bài tập MP3 player phần 307:18

📚 Bài 265: Bài tập MP3 player phần 405:29

📚 Bài 266: Bài tập MP3 player phần 509:30

📚 Bài 267: Bài tập MP3 player phần 608:36

📚 Bài 268: Bài tập MP3 player phần 706:16

📚 Bài 269: Bài tập MP3 player phần 806:35

📚 Bài 270: Bài tập Memory game phần 108:15

📚 Bài 271: Bài tập Memory game phần 207:38

📚 Bài 272: Bài tập Memory game phần 306:39

📚 Bài 273: Bài tập Memory game phần 405:24

📚 Bài 274: Bài tập Memory game phần 508:08

📚 Bài 275: Bài tập Memory game phần 607:48

📚 Bài 276: Bài tập Memory game phần 708:15

📚 Bài 277: Tạm kết phần 1 và bật mí phần 203:47


️🏆🏆Chương 12: Các kiến thức khác cần biết️🏆🏆


📚 Bài 278: Các kiến thức hay khác cần biết08:18

📚 Bài 279: arguments trong function04:54

📚 Bài 280: Câu hỏi phỏng vấn về closure06:11

📚 Bài 281: Sự khác nhau giữa localStorage và sessionStorage02:12

📚 Bài 282: Cách sử dụng arrow function hiệu quả05:31

📚 Bài 283: Đệ quy là gì ?04:13

📚 Bài 284: Bài tập đệ quy phần 107:40

📚 Bài 285: Bài tập đệ quy phần 204:28

📚 Bài 286: Tìm hiểu object Set08:26

📚 Bài 287: Tìm hiểu cách debug trong VSCode02:44

📚 Bài 288: Location trong BOM04:35

📚 Bài 289: Location trong BOM tiếp theo04:33

📚 Bài 290: History trong BOM02:41

📚 Bài 291: Navigator trong BOM03:06


️🏆🏆Chương 13: Prototype & constructor function️🏆🏆


📚 Bài 292: constructor function là gì ?07:11

📚 Bài 293: Prototype là cái gì ?09:05

📚 Bài 294: Tìm hiểu Bind phần 104:25

📚 Bài 295: Tìm hiểu Bind phần 204:11

📚 Bài 296: Sự khác nhau giữa call và apply06:17

📚 Bài 297: Refactor bài tập Simple Slider với Prototype07:46


️🏆🏆Chương 14: Class️🏆🏆


📚 Bài 298: Giới thiệu class04:42

📚 Bài 299: setter và getter05:50

📚 Bài 300: class expression05:14

📚 Bài 301: static method là gì ?07:10

📚 Bài 302: static property là gì ?04:42

📚 Bài 303: Tìm hiểu super và extends06:16

📚 Bài 304: Bài tập TodoList phần 104:13

📚 Bài 305: Bài tập TodoList phần 208:26

📚 Bài 306: Bài tập TodoList phần 306:18

📚 Bài 307: Bài tập TodoList phần 407:16

📚 Bài 308: Bài tập TodoList phần 505:56

📚 Bài 309: Bài tập TodoList phần 605:40

📚 Bài 310: Bài tập TodoList phần 707:07

📚 Bài 311: Bài tập TodoList phần 805:53

📚 Bài 312: Bài tập TodoList phần 903:02


️🏆🏆Chương 15: Kiến thức về bất đồng bộ️🏆🏆


📚 Bài 313: Global execution context08:20

📚 Bài 314: Function execution context05:28

📚 Bài 315: Callstack06:50

📚 Bài 316: Tìm hiểu event loop phần 106:15

📚 Bài 317: Tìm hiểu event loop phần 210:22

📚 Bài 318: Callback hell là gì?05:13

📚 Bài 319: Promise phần 106:24

📚 Bài 320: Promise phần 207:57

📚 Bài 321: Promise phần 303:41

📚 Bài 322: Promise phần 405:23

📚 Bài 323: Promise phần 507:58

📚 Bài 324: Promise phần 607:21

📚 Bài 325: try catch04:36

📚 Bài 326: Async await phần 108:01

📚 Bài 327: Async await phần 204:42

📚 Bài 328: Async await phần 307:08


️🏆🏆Chương 16: API toàn tập️🏆🏆


📚 Bài 329: API là gì ?03:27

📚 Bài 330: Ví dụ đơn giản với API phần 106:05

📚 Bài 331: Ví dụ đơn giản với API phần 206:40

📚 Bài 332: Bài tập API DadJoke phần 111:35

📚 Bài 333: Bài tập API DadJoke phần 210:01

📚 Bài 334: Bài tập API Picsum Photos phần 110:15

📚 Bài 335: Bài tập API Picsum Photos phần 206:49

📚 Bài 336: Bài tập API Picsum Photos phần 309:36

📚 Bài 337: Cors là gì ?07:45

📚 Bài 338: Các trạng thái hay gặp khi gọi API02:20

📚 Bài 339: Các phương thức hay dùng nên biết02:26

📚 Bài 340: Giới thiệu Json Server phần 108:06

📚 Bài 341: Giới thiệu Json Server phần 208:30

📚 Bài 342: Thực hành bài tập khóa học với Json Server phần 108:44

📚 Bài 343: Thực hành bài tập khóa học với Json Server phần 209:18

📚 Bài 344: Thực hành bài tập khóa học với Json Server phần 310:08

📚 Bài 345: Thực hành bài tập khóa học với Json Server phần 409:44

📚 Bài 346: Thực hành bài tập khóa học với Json Server phần 510:58

📚 Bài 347: Thực hành bài tập khóa học với Json Server phần 608:11

📚 Bài 348: Thực hành bài tập khóa học với Json Server phần 707:19

📚 Bài 349: Thực hành bài tập khóa học với Json Server phần 807:31

📚 Bài 350: Thực hành bài tập khóa học với Json Server phần 906:25

📚 Bài 351: Thực hành bài tập khóa học với Json Server phần 1008:00

📚 Bài 352: Thực hành bài tập khóa học với Json Server phần 1110:39


️🏆🏆Chương 17: Thuật toán cơ bản️🏆🏆


📚 Bài 353: Thuật toán là gì ?01:18

📚 Bài 354: Tìm hiểu BigO Notation05:01

📚 Bài 355: Thuật toán tìm kiếm và sắp xếp01:11

📚 Bài 356: Thuật toán Bubble Sort phần 110:10

📚 Bài 357: Thuật toán Bubble Sort phần 205:55

📚 Bài 358: Thuật toán Insertion Sort phần 103:28

📚 Bài 359: Thuật toán Insertion Sort phần 210:18

📚 Bài 360: Thuật toán Selection Sort phần 104:03

📚 Bài 361: Thuật toán Selection Sort phần 208:34

📚 Bài 362: Thuật toán Quick Sort phần 106:51

📚 Bài 363: Thuật toán Quick Sort phần 207:44

📚 Bài 364: Thuật toán Linear Search phần 103:28

📚 Bài 365: Thuật toán Binary Search phần 106:27

📚 Bài 366: Thuật toán Binary Search phần 210:24

📚 Bài 367: Thuật toán Interpolation Search05:07

📚 Bài 368: Bài tập Array Replace03:58

📚 Bài 369: Bài tập Palindrome05:38

📚 Bài 370: Bài tập Array Chunking08:01

📚 Bài 371: Bài tập Array Reverse06:39


️🏆🏆Chương cuối: Kiến thức bổ sung️🏆🏆


📚 Bài 372: Tìm hiểu Javascript Modules07:51

📚 Bài 373: Cài đặt extension Thunder Client02:22

📚 Bài 375: Học gì tiếp theo sau khi hoàn thành khóa học này00:55

📚 Bài 376: Lời cám ơn chân thành01:04

📚 Bài 377: Vẫn chưa hết

📚 Bài 378: Tìm hiểu phương thức get trong axios11:25

📚 Bài 379: Tìm hiểu phương thức post trong axios06:03

📚 Bài 380: Tìm hiểu phương thức put và patch trong axios05:18

📚 Bài 381: Tìm hiểu phương thức delete trong axios01:49

📚 Bài 382: Tìm hiểu phương thức all trong axios03:26

📚 Bài 383: Tìm hiểu Intersection Observer cơ bản24:21

🎯️Khóa 4: Khoá học ReactJS cơ bản đến nâng cao dành cho người mới bắt đầu

Nội dung khóa học này

️🏆🏆Chương 1: Giới thiệu khóa học️🏆🏆


📚 Intro (Rất quan trọng)06:21

📚 Cài đặt vscode extensions và settings03:05

📚 Cài đặt NodeJS và Git scm01:58

📚 Cài đặt react dev tools và redux dev tools01:31

📚 Cách đạt hiệu quả cao khi học khóa học05:18

📚 Giới thiệu outline khóa học03:46


️🏆🏆Chương 2: React cơ bản️🏆🏆


📚 Bài 1: Giới thiệu chương 201:17

📚 Bài 2: ReactJS là gì ?

📚 Bài 3: Tìm hiểu Create React App02:20

📚 Bài 4: Cài đặt CRA02:49

📚 Bài 5: JSX là gì ?04:20

📚 Bài 6: Tìm hiểu JSX phần 111:28

📚 Bài 7: Tìm hiểu JSX phần 210:26

📚 Bài 8: Tìm hiểu JSX phần cuối03:22

📚 Bài 9: Components là gì ?06:15

📚 Bài 10: Props là gì ?09:18

📚 Bài 11: Thực hành với Props cơ bản05:22

📚 Bài 12: Tìm hiểu 2 cách styles cơ bản trong React09:40

📚 Bài 13: Rendering list phần 108:11

📚 Bài 14: Rendering list phần 208:24

📚 Bài 15: Rendering list phần 308:09

📚 Bài 16: Refactor code04:46

📚 Bài 17: Tìm hiểu props children06:38

📚 Bài 18: Recap chương 2


️🏆🏆Chương 3: Tìm hiểu react hook useState️🏆🏆


📚 Bài 19: Giới thiệu chương 300:42

📚 Bài 20: State là gì ?01:06

📚 Bài 21: stateless và stateful functional components03:55

📚 Bài 22: Tìm hiểu useState cơ bản phần 108:54

📚 Bài 23: Tìm hiểu useState cơ bản phần 209:42

📚 Bài 24: Tìm hiểu useState cơ bản phần 308:12

📚 Bài 25: Tìm hiểu useState cơ bản phần 405:41

📚 Bài 26: Những nguyên tắc khi sử dụng hook cần nắm02:15

📚 Bài 27: Stale state là gì ?06:10

📚 Bài 28: Thực hành game Tictactoe phần 108:13

📚 Bài 29: Thực hành game Tictactoe phần 209:18

📚 Bài 30: Thực hành game Tictactoe phần 310:38

📚 Bài 31: Thực hành game Tictactoe phần 410:02

📚 Bài 32: Thực hành game Tictactoe phần 509:40

📚 Bài 33: Xử lý state phức tạp như thế nào ?08:22

📚 Bài 34: Tìm hiểu useReducer phần 108:30

📚 Bài 35: Tìm hiểu useReducer phần 208:16

📚 Bài 36: Tìm hiểu useReducer phần 311:15

📚 Bài 37: React cập nhật state như thế nào ?03:22

📚 Bài 38: Recap chương 3


️🏆🏆Chương 4: Styling trong React️🏆🏆


📚 Bài 39: Giới thiệu chương 4

📚 Bài 40: Cài đặt và sử dụng Sass cơ bản08:37

📚 Bài 41: Tìm hiểu CSS Module06:37

📚 Bài 42: Cài đặt thư viện styled-components02:23

📚 Bài 43: Phân tích giao diện Card component07:29

📚 Bài 44: Sử dụng styled-components phần 108:38

📚 Bài 45: Sử dụng styled-components phần 209:29

📚 Bài 46: Sử dụng styled-components phần 308:07

📚 Bài 47: Tìm hiểu props trong styled-components11:07

📚 Bài 48: Cách tạo Global styles trong styled-components08:27

📚 Bài 49: Tìm hiểu một cách sử dụng styled-components khác09:09

📚 Bài 50: So sánh 2 cách dùng của styled-components06:18

📚 Bài 51: Tìm hiểu Theme trong styled-components06:12

📚 Bài 52: Giới thiệu và cài đặt tailwindcss05:54

📚 Bài 52.1: Cập nhật CRA và TailwindCSS version 3(quan trọng)06:18

📚 Bài 52.2: Hướng dẫn sửa lỗi TailwindCSS không tạo ra class04:23

📚 Bài 52.3: Lưu ý quan trọng phải xem03:35

📚 Bài 53: Sử dụng tailwindcss phần 108:33

📚 Bài 54: Cài đặt jitmode trong tailwindcss07:45

📚 Bài 55: Sử dụng tailwindcss phần 211:02

📚 Bài 56: Xử lý props trong tailwindcss như thế nào06:38

📚 Bài 57: Recap chương 4


️🏆🏆Chương 5: Tìm hiểu React hook useEffect️🏆🏆


📚 Bài 58: Giới thiệu chương 503:26

📚 Bài 59: Cách dùng useEffect cơ bản05:05

📚 Bài 60: Thực hành với API Picsum photos sử dụng useEffect phần 107:36

📚 Bài 61: Thực hành với API Picsum photos sử dụng useEffect phần 205:08

📚 Bài 62: Thực hành với API Picsum photos sử dụng useEffect phần 308:06

📚 Bài 63: Thực hành với API Picsum photos sử dụng useEffect phần 408:59

📚 Bài 64: Thực hành với API Picsum photos sử dụng useEffect phần 508:42

📚 Bài 65: Refactor code sang async function03:34

📚 Bài 66: Tìm hiểu dependency trong useEffect phần 108:35

📚 Bài 67: Tìm hiểu dependency trong useEffect phần 204:09

📚 Bài 68: Tìm hiểu dependency trong useEffect phần 304:00

📚 Bài 69: Tìm hiểu cleanup function trong useEffect08:28

📚 Bài 70: Sử dụng event listener trong useEffect như thế nào ?08:49

📚 Bài 71: Tối ưu bài tập API Picsum Photos07:16

📚 Bài 72: Bài tập HackerNews API phần 108:28

📚 Bài 73: Bài tập HackerNews API phần 205:33

📚 Bài 74: Bài tập HackerNews API phần 306:02

📚 Bài 75: Bài tập HackerNews API phần 408:52

📚 Bài 76: Tối ưu giao diện HackerNews API06:56

📚 Bài 77: Bài tập HackerNews API - Fetching dữ liệu với button11:05

📚 Bài 78: Bài tập HackerNews API - Sử dụng useReducer phần 106:34

📚 Bài 79: Bài tập HackerNews API - Sử dụng useReducer phần 206:14

📚 Bài 80: Bài tập HackerNews API - Sử dụng useReducer phần cuối08:01

📚 Bài 81: Recap chương 5


️🏆🏆Chương 6: ref và custom hooks️🏆🏆


📚 Bài 82: Giới thiệu chương 601:58

📚 Bài 83: Tìm hiểu về ref cơ bản03:19

📚 Bài 84: Sự khác nhau giữa hook useRef và hook useState04:53

📚 Bài 85: Bài tập đồng hồ bấm giờ đơn giản08:46

📚 Bài 86: Bài tập Input Auto Focus07:59

📚 Bài 87: Bài tập Textarea Resize phần 106:50

📚 Bài 88: Bài tập Textarea Resize phần 211:00

📚 Bài 89: Bài tập Dropdown phần 107:13

📚 Bài 90: Bài tập Dropdown phần 209:21

📚 Bài 91: Xử lý callback dependency trong useEffect với ref04:11

📚 Bài 92: Custom hook là gì ?02:33

📚 Bài 93: Viết custom hook useLinkNewTab phần 105:50

📚 Bài 94: Viết custom hook useLinkNewTab phần 205:10

📚 Bài 95: Viết custom hook useHover phần 108:11

📚 Bài 96: Viết custom hook useHover phần 204:50

📚 Bài 97: Xử lý unmounted component với ref phần 106:13

📚 Bài 98: Xử lý unmounted component với ref phần 202:54

📚 Bài 99: Tối ưu bài tập HackerNewsAPI với custom hook phần 105:16

📚 Bài 100: Tối ưu bài tập HackerNewsAPI với custom hook phần 206:25

📚 Bài 101: Tối ưu bài tập HackerNewsAPI với custom hook phần 306:33

📚 Bài 102: Viết custom hook useClickOutSide05:39

📚 Bài 103: Bài tập SidebarMenu phần 108:14

📚 Bài 104: Bài tập SidebarMenu phần 206:38

📚 Bài 105: Recap chương 6


️🏆🏆Chương 7: Form toàn tập️🏆🏆


📚 Bài 106: Giới thiệu chương 701:03

📚 Bài 107: Tìm hiểu Form cơ bản trong React phần 108:47

📚 Bài 108: Tìm hiểu Form cơ bản trong React phần 210:17

📚 Bài 109: Tìm hiểu Form cơ bản trong React phần 306:44

📚 Bài 110: Tìm hiểu Form cơ bản trong React phần 406:23

📚 Bài 111: Tìm hiểu Form cơ bản trong React phần 508:04

📚 Bài 112: Bài tập Movie Search App - Đăng ký API06:05

📚 Bài 113: Bài tập Movie Search App - Fetching dữ liệu05:56

📚 Bài 114: Bài tập Movie Search App - Styling giao diện10:06

📚 Bài 115: Bài tập Movie Search App - Hiển thị dữ liệu08:42

📚 Bài 116: Bài tập Movie Search App - Hiển thị dữ liệu tiếp theo04:32

📚 Bài 117: Bài tập Movie Search App - Chức năng tìm kiếm05:26

📚 Bài 118: Bài tập Movie Search App - Sử dụng kỹ thuật debounce07:38

📚 Bài 119: Bài tập Movie Search App - Giải thích hook useDebounce07:45

📚 Bài 120: Bài tập Movie Search App - Giới thiệu về loading skeleton07:18

📚 Bài 121: Bài tập Movie Search App - Thêm loading skeleton07:30

📚 Bài 122: Setup giao diện form cơ bản06:08

📚 Bài 123: Cài đặt và sử dụng formik vào form07:30

📚 Bài 124: Validation cơ bản với formik07:28

📚 Bài 125: Validation cơ bản với formik tiếp theo04:03

📚 Bài 126: Validation với thư viện Yup07:28

📚 Bài 127: Tối ưu source code08:59

📚 Bài 128: Bài tập SignUpForm - Phân tích và code giao diện08:00

📚 Bài 129: Bài tập SignUpForm - Chia nhỏ và tái sử dụng components09:20

📚 Bài 130: Bài tập SignUpForm - Tìm hiểu và sử dụng hook useField09:44

📚 Bài 131: Bài tập SignUpForm - Tối ưu components và validtion10:36

📚 Bài 132: Bài tập SignUpForm - Reset form và submitting10:44

📚 Bài 133: Cài đặt thư viện React Hook Form05:21

📚 Bài 134: Sử dụng React Hook Form cơ bản09:12

📚 Bài 135: Validation cơ bản09:03

📚 Bài 136: Sử dụng Yup cơ bản09:45

📚 Bài 137: Các trạng thái trong React Hook Form p111:53

📚 Bài 138: Các trạng thái trong React Hook Form p207:19

📚 Bài 139: Tìm hiểu phương thức watch08:48

📚 Bài 140: Tìm hiểu phương thức Reset06:41

📚 Bài 141: Tìm hiểu phương thức setValues và setFocus07:22

📚 Bài 142: Tìm hiểu Controller09:38

📚 Bài 143: Tìm hiểu useController06:08

📚 Bài 144: Tìm hiểu Control03:08

📚 Bài 145: Recap formik và React Hook Form(RHF)05:23

📚 Bài 146: Thực hành Register Form với RHF - Setup08:49

📚 Bài 147: Thực hành Register Form với RHF - Styling08:45

📚 Bài 148: Thực hành Register Form với RHF - Custom Input08:38

📚 Bài 149: Thực hành Register Form với RHF - Custom Radio11:03

📚 Bài 150: Thực hành Register Form với RHF - Custom Checkbox10:02

📚 Bài 151: Thực hành Register Form với RHF - Custom Dropdown phần 107:06

📚 Bài 152: Thực hành Register Form với RHF - Custom Dropdown phần 209:57

📚 Bài 153: Thực hành Register Form với RHF - Custom Dropdown phần 304:45

📚 Bài 154: Thực hành Register Form với RHF - Validation phần 110:22

📚 Bài 155: Thực hành Register Form với RHF - Validation phần 209:44

📚 Bài 156: Thực hành Register Form với RHF - Form submitting09:21

📚 Bài 157: Thực hành Register Form với RHF - Form reset phần 108:25

📚 Bài 158: Thực hành Register Form với RHF - Form reset phần 208:51

📚 Bài 159: Thực hành Register Form với Formik - Setup05:38

📚 Bài 160: Thực hành Register Form với Formik - Setup phần 207:13

📚 Bài 161: Thực hành Register Form với Formik - Validation06:47

📚 Bài 162: Thực hành Register Form với Formik - Custom Input07:34

📚 Bài 163: Thực hành Register Form với Formik - Custom Radio07:27

📚 Bài 164: Thực hành Register Form với Formik - Custom Checkbox10:59

📚 Bài 165: Thực hành Register Form với Formik - Custom Dropdown07:37

📚 Bài 166: Thực hành Register Form với Formik - Lấy giá trị từ Dropdown05:08

📚 Bài 167: Thực hành Register Form với Formik - Reset form04:01

📚 Bài 168: So sánh formik và react-hook-form05:27


️🏆🏆Chương 8: Fragments, Portal️🏆🏆


📚 Bài 169: Fragments05:04

📚 Bài 170: Vấn đề hay gặp khi làm việc với Modal05:57

📚 Bài 171: Tìm hiểu và sử dụng createPortal08:10

📚 Bài 172: Styling Modal09:24

📚 Bài 173: Thêm chức năng cho Modal06:26

📚 Bài 174: Xử lý overflow cho Dropdown với createPortal09:32

📚 Bài 175: Tooltip challenge04:04

📚 Bài 176: Giải bài tooltip phần 107:49

📚 Bài 177: Giải bài tooltip phần 204:36

📚 Bài 178: Bắt lỗi Component với react-error-boundary06:28

📚 Bài 179: Kiểm tra Props của Component với PropTypes07:35

📚 Bài 180: Tối ưu code Portal nâng cao phần 109:22

📚 Bài 181: Tối ưu code Portal nâng cao phần 208:37

📚 Bài 182: Tối ưu code Portal nâng cao phần 304:03

📚 Bài 183: Tối ưu code Portal nâng cao phần 409:55

📚 Bài 184: Tối ưu code Portal nâng cao phần 507:27

📚 Bài 185: Tối ưu component Tooltips07:18

📚 Bài 186: Tối ưu component Portal10:59

📚 Bài 187: Recap kiến thức Portal06:00


️🏆🏆Chương 9: Context và Router️🏆🏆


📚 Bài 188: Giới thiệu Context02:37

📚 Bài 189: Vấn đề thực tế03:44

📚 Bài 190: Thực hành CountContext phần 107:37

📚 Bài 191: Thực hành CountContext phần 206:37

📚 Bài 192: Thực hành AuthContext phần 108:00

📚 Bài 193: Thực hành AuthContext phần 205:48

📚 Bài 194: Thực hành GalleryContext - Setup06:30

📚 Bài 195: Thực hành GalleryContext - Styling08:42

📚 Bài 196: Thực hành GalleryContext - toggleFavorite08:55

📚 Bài 197: Thực hành GalleryContext - addToCart11:28

📚 Bài 198: Thực hành GalleryContext - removeFromCart07:31

📚 Bài 199: Thực hành GalleryContext - Display count10:18

📚 Bài 200: Thực hành Gallery Context - usehooks07:46

📚 Bài 201: Thực hành Gallery Context - localStorage10:26

📚 Bài 202: Tìm hiểu React Router cơ bản phần 109:30

📚 Bài 203: Tìm hiểu React Router cơ bản phần 208:46

📚 Bài 204: Tìm hiểu React Router cơ bản phần 305:36

📚 Bài 205: Tìm hiểu React Router cơ bản phần 412:57


️🏆🏆Chương 10: Dự án React Simple Movie️🏆🏆


📚 Bài 206: Thiết lập dự án07:50

📚 Bài 207: Code giao diện menu và banner15:03

📚 Bài 208: Code giao diện movie card11:18

📚 Bài 209: Tìm hiểu và sử dụng thư viện Swiper, SWR13:38

📚 Bài 210: Tạo component MovieList và fetching dữ liệu12:56

📚 Bài 211: Tạo component Banner13:03

📚 Bài 212: Thiết lập Routes cho dự án10:55

📚 Bài 213: Fetching dữ liệu trang danh sách phim12:21

📚 Bài 214: Trang chi tiết phim - Fetching dữ liệu08:10

📚 Bài 215: Trang chi tiết phim - Code giao diện14:28

📚 Bài 216: Trang chi tiết phim - Fetching dữ liệu diễn viên12:08

📚 Bài 217: Trang chi tiết phim - Fetching dữ liệu trailers và similar11:55

📚 Bài 218: Thêm chức năng tìm kiếm phim08:26

📚 Bài 219: Thêm Loading08:40

📚 Bài 220: Thêm chức năng phân trang - Phân tích chức năng12:47

📚 Bài 221: Thêm chức năng phân trang - Sử dụng react-paginate08:36

📚 Bài 222: Thêm chức năng phân trang - Tối ưu giao diện07:56

📚 Bài 223: Tối ưu component Button08:02

📚 Bài 224: Tối ưu API Config12:08

📚 Bài 225: Tối ưu import path phần 113:05

📚 Bài 226: Tối ưu import path phần 207:48

📚 Bài 227: Recap lại kiến thức đã học và áp dụng03:33

📚 Bài 228: Code splitting Routes05:41

📚 Bài 229: Tối ưu source code phần 110:26

📚 Bài 230: Tối ưu source code phần 210:35

📚 Bài 231: Tối ưu source code phần 310:01

📚 Bài 232: Chức năng Load more phần 112:45

📚 Bài 233: Chức năng Load more phần 206:24

📚 Bài 234: Chúc mừng bạn đã hoàn thành dự án01:29


️🏆🏆Chương 11: Advanced React️🏆🏆


📚 Bài 235: Giới thiệu chương 1102:45

📚 Bài 236: Higher order components(hocs) phần 110:00

📚 Bài 237: Higher order components(hocs) phần 208:31

📚 Bài 238: Recap HOCs05:22

📚 Bài 239: Render props phần 110:26

📚 Bài 240: Render props phần 210:27

📚 Bài 241: Recap render props04:17

📚 Bài 242: Custom hooks06:01

📚 Bài 243: React composition(Compound Component) phần 109:53

📚 Bài 244: React composition(Compound Component) phần 211:52

📚 Bài 245: React composition(Compound Component) phần 308:39

📚 Bài 246: Prop collections10:26

📚 Bài 247: Prop getters09:21

📚 Bài 248: Control props phần 110:02

📚 Bài 249: Control props phần 210:04

📚 Bài 250: Control props phần 306:05

📚 Bài 251: State reducer phần 104:21

📚 Bài 252: State reducer phần 212:05

📚 Bài 253: State reducer phần 308:52

📚 Bài 254: Inversion of control phần 109:21

📚 Bài 255: Inversion of control phần 211:29

📚 Bài 256: Inversion of control phần 311:21

📚 Bài 257: Inversion of control phần 413:33

📚 Bài 258: Tối ưu Component re-render với useMemo, useCallback và React.memo14:28

📚 Bài 259: Recap chương 1102:32


️🏆🏆Chương 12: Firebase cơ bản️🏆🏆


📚 Bài 260: Giới thiệu và thiết lập Firebase07:29

📚 Bài 261: Thiết lập Firestore Database04:09

📚 Bài 262: Truy xuất dữ liệu Collection với getDocs10:53

📚 Bài 263: Thêm dữ liệu vào Collection với addDoc08:36

📚 Bài 264: Xóa dữ liệu trong Collection với deleteDoc06:37

📚 Bài 265: Hiển thị dữ liệu realtime với onSnapshot05:31

📚 Bài 266: Cập nhật dữ liệu với updateDoc05:44

📚 Bài 267: Truy xuất 1 Document với getDoc04:37

📚 Bài 268: Truy vấn dữ liệu nâng cao với Firestore Queries08:44

📚 Bài 269: Giới thiệu và cài đặt Firebase Authentication06:42

📚 Bài 270: Thực hiện chức năng đăng ký với Firebase Auth06:28

📚 Bài 271: Thực hiện chức năng đăng xuất với Firebase Auth05:49

📚 Bài 272: Hiển thị displayName và tự động thêm Collection vào Firestore08:45

📚 Bài 273: Thực hiện chức năng đăng nhập với Firebase Auth05:24


️🏆🏆Chương 13: Dự án Monkey Blogging️🏆🏆


📚 Bài 274: Giới thiệu chương 1309:13

📚 Bài 275: Thiết lập Firebase06:25

📚 Bài 276: Thiết lập Routes03:46

📚 Bài 277: Tạo authContext06:31

📚 Bài 278: Code giao diện trang SignUp phần 109:39

📚 Bài 279: Code giao diện trang SignUp phần 207:07

📚 Bài 280: Label component05:21

📚 Bài 281: Input component phần 111:09

📚 Bài 282: Input component phần 208:33

📚 Bài 283: Field component04:13

📚 Bài 284: Xử lý toggle password06:16

📚 Bài 285: Button component phần 113:44

📚 Bài 286: Button component phần 206:32

📚 Bài 287: Xử lý Form Validation cho trang SignUp phần 108:41

📚 Bài 288: Xử lý Form Validation cho trang SignUp phần 205:45

📚 Bài 289: Hoàn thành chức năng đăng ký(SignUp Authentication)09:50

📚 Bài 290: Thêm PropTypes cho Button component08:49

📚 Bài 291: Code giao diện trang đăng nhập(SignIn)11:53

📚 Bài 292: Hoàn thành chức năng đăng nhập(SignIn Authentication)12:00

📚 Bài 293: Code giao diện block Header phần 117:38

📚 Bài 294: Code giao diện trang 40408:37

📚 Bài 295: Code giao diện block Header phần 212:01

📚 Bài 296: Code giao diện block Banner18:06

📚 Bài 297: Lưu ý về giao diện nên xem05:53

📚 Bài 298: Tạo và tối ưu PostCategory component17:03

📚 Bài 299: Tạo và tối ưu PostTitle component13:05

📚 Bài 300: Tạo và tối ưu PostMeta component06:56

📚 Bài 301: Tạo và tối ưu PostImage component09:47

📚 Bài 302: Tối ưu chức năng Toggle Password04:15

📚 Bài 303: Lưu ý về giao diện08:04

📚 Bài 304: Phân tích Database11:18

📚 Bài 305: Chức năng thêm bài viết - Tổng quan15:23

📚 Bài 306: Chức năng thêm bài viết - Upload hình ảnh14:30

📚 Bài 307: Chức năng thêm bài viết - Tối ưu giao diện Upload11:35

📚 Bài 308: Chức năng thêm bài viết - Xóa hình ảnh và tối ưu logic16:52

📚 Bài 309: Chức năng thêm bài viết - Tối ưu code Upload hình ảnh08:55

📚 Bài 310: Chức năng thêm bài viết - Thêm toggle bài viết nổi bật06:38

📚 Bài 311: Chức năng thêm bài viết - Truy vấn danh mục(category)10:20

📚 Bài 312: Chức năng thêm bài viết - Chọn danh mục từ Dropdown14:23

📚 Bài 313: Tối ưu code chức năng thêm bài viết12:36

📚 Bài 314: Tối ưu code chức năng thêm bài viết tiếp theo11:27

📚 Bài 315: Truy xuất và hiển thị bài viết nổi bật18:24

📚 Bài 316: Tối ưu SignUp component12:02

📚 Bài 317: Tối ưu code18:49

📚 Bài 318: Hiển thị thời gian của bài viết04:47

📚 Bài 319: Lưu ý về giao diện tiếp theo04:54

📚 Bài 320: Chức năng thêm Danh mục phần 107:07

📚 Bài 321: Chức năng thêm Danh mục phần 212:36

📚 Bài 322: Hiển thị danh sách Danh mục12:41

📚 Bài 323: Chức năng xóa Danh mục08:31

📚 Bài 324: Chức năng cập nhật Danh mục phần 106:00

📚 Bài 325: Chức năng cập nhật Danh mục phần 211:23

📚 Bài 326: Chức năng tìm kiếm Danh mục phần 110:38

📚 Bài 327: Chức năng tìm kiếm Danh mục phần 207:28

📚 Bài 328: Chức năng tải thêm Danh mục phần 115:35

📚 Bài 329: Chức năng tải thêm Danh mục phần 209:06

📚 Bài 330: Hiển thị danh sách User15:59

📚 Bài 331: Tối ưu cấu trúc dữ liệu của User15:47

📚 Bài 332: Chức năng thêm User phần 116:31

📚 Bài 333: Chức năng thêm User phần 216:07

📚 Bài 334: Chức năng xóa User13:20

📚 Bài 335: Chức năng cập nhật thông tin User17:03

📚 Bài 336: Tối ưu chức năng xóa hình ảnh phần 116:07

📚 Bài 337: Tối ưu chức năng xóa hình ảnh phần 204:51

📚 Bài 338: Tối ưu cấu trúc dữ liệu bài viết phần 117:58

📚 Bài 339: Tối ưu cấu trúc dữ liệu bài viết phần 209:27

📚 Bài 340: Hiển thị danh sách bài viết12:53

📚 Bài 341: Chức năng xóa bài viết10:15

📚 Bài 342: Chức năng tìm kiếm, tải thêm bài viết08:36

📚 Bài 343: Chức năng cập nhật bài viết phần 115:40

📚 Bài 344: Chức năng cập nhật bài viết phần 220:30

📚 Bài 345: Chức năng cập nhật bài viết phần 309:26

📚 Bài 346: Chức năng cập nhật bài viết phần 409:41

📚 Bài 347: Chức năng cập nhật bài viết phần 508:15

📚 Bài 348: Hiển thị thông tin tác giả bài viết14:24

📚 Bài 349: Hiển thị bài viết liên quan phần 117:34

📚 Bài 350: Hiển thị bài viết liên quan phần 218:54

📚 Bài 351: Tối ưu thông tin user authentication12:18

📚 Bài 352: Tối ưu source code phần 121:57

📚 Bài 353: Tối ưu source code phần 204:45


️🏆🏆Chương 14: Redux toàn tập️🏆🏆


📚 Bài 354: Giới thiệu về Redux06:15

📚 Bài 355: Cài đặt Create React App Redux04:44

📚 Bài 356: Ví dụ đơn giản với component Counter09:50

📚 Bài 357: Sử dụng Redux core cho component Counter23:09

📚 Bài 358: Sử dụng Redux toolkit cho component Counter19:20

📚 Bài 359: Thực hành bài tập Toggle DarkMode phần 125:32

📚 Bài 360: Thực hành bài tập Toggle DarkMode phần 206:48

📚 Bài 361: Thực hành bài tập Toggle Sidebar08:11

📚 Bài 362: Tìm hiểu Redux Middleware cơ bản16:06

📚 Bài 363: Giới thiệu và cài đặt Redux Saga09:01

📚 Bài 364: Tìm hiểu Generator Function cơ bản13:28

📚 Bài 365: Thực hành call API HackerNews với Redux Saga phần 126:12

📚 Bài 366: Thực hành call API HackerNews với Redux Saga phần 213:56

📚 Bài 367: Thực hành call API HackerNews với Redux Saga phần 313:09

📚 Bài 368: Thực hành call API HackerNews với Redux Saga phần 414:38

📚 Bài 369: Tìm hiểu extraReducers09:47

📚 Bài 370: Tìm hiểu Redux-thunk cơ bản25:26


️🏆🏆Chương 15: Dự án cuối khóa CrowFunding️🏆🏆


📚 Bài 371: Giới thiệu dự án09:14

📚 Bài 372: Thiết lập styling và cấu trúc thư mục15:58

📚 Bài 373: Code trang SignUp phần 121:47

📚 Bài 374: Code trang SignUp phần 226:59

📚 Bài 375: Code trang SignUp phần 319:46

📚 Bài 376: Code trang SignUp phần 422:18

📚 Bài 377: Code trang SignUp phần 518:21

📚 Bài 378: Code trang SignUp phần 625:26

📚 Bài 379: Code trang SignIn13:32

📚 Bài 380: Tối ưu hiển thị className08:39

📚 Bài 381: Code giao diện Dashboard - Topbar22:05

📚 Bài 382: Code giao diện Dashboard - Sidebar29:28

🔖THÔNG TIN QUÀ TẶNG