- vừa được xem lúc

Thích Học ReactJS - Giới thiệu ReactJS

0 0 15

Người đăng: Lâm Kim Phú

Theo Viblo Asia

ReactJS là gì?

ReactJS là một thư viện viết bằng Javascript để xây dựng giao diện người dùng dựa trên components. ReactJS được duy trì bởi Meta và cộng đồng các nhà phát triển cá nhân.

Tại sao lại sử dụng ReactJS?

Bạn sẽ viết ReatJS theo kiểu declarative, với kiểu declarative, bạn chỉ cần thiết kế những component với state, cho ReactJS biết cần làm gì khi user nhập vào ô input, khi user bấm nút submit hay tóm tắt là bạn sẽ cho ReactJS biết khi user tương tác với web app thì ReactJS nên làm gì. Sau đó ReactJS sẽ render component với đúng UI, đúng dữ liệu và behave giống như bạn mong đợi. Ngoài ra, code của bạn sẽ dễ dự đoán hơn và dễ gỡ lỗi hơn nhiều, đặc biệt là với các công cụ phát triển của ReactJS, đặc biệt là React Dev Tools.

Ngoài ra, ReactJS dựa trên component để chúng ta có thể xây dựng các component được đóng gói có thể quản lý trạng thái của chúng và chúng ta có thể kết hợp chúng để tạo một giao diện người dùng phức tạp. Vì nó dựa trên component, chúng ta có thể sử dụng lại thành phần để viết một lần, chạy mọi nơi. Cuối cùng nhưng không kém phần quan trọng, trong ReactJS 18, chúng ta cũng có thể áp dụng server side rendering bằng Node và implement các ứng dụng di động bằng React Native.

ReactJS render phần lớn trên phía client, gọi là client side rendering. Như vậy, với mỗi thay đổi, app sẽ không gọi đến server để render nguyên một file HTML nữa mà chỉ gọi đến những API để lấy dữ liệu cần thiết rồi render ra. App sẽ trông mượt hơn, dữ liệu lấy từ server cũng ít hơn do đó app cũng sẽ trong nhanh hơn. Tuy nhiên, nhược điểm lớn nhất của ReactJS là không SEO được vì khi đến server, cái mà client nhận được là file html với một thẻ tag nào đó có id là root mà không có nội dung, cấu trúc trang cụ thể. Do đó, rất khó cho google bot biết được là trang này đang làm cái gì, cấu trúc ra sao.

Dự án viết bằng ReactJS

Mình sẽ hướng dẫn các bạn cách viết ReactJS thông qua cách implement một trang web thực tế bằng ReactJS. Như vậy, sau series này, các bạn vừa biết cách viết ReactJS mà vừa tự build một sản phẩm từ những kiến thức về ReactJS. Sơ lược về app chúng ta sẽ build với ReactJS là một app todo đơn giản, với app này, người dùng có thể thêm, xoá sửa task cho mỗi ngày. Có thể xem được những task trong ngày của mình, có thể lọc task dựa trên tiêu chí nào đó và có thể tìm task với tên cụ thể.

Khởi tạo dự án React

Để khởi tạo dự án ReactJS, các bạn cần phải có npm ở trong máy. Chạy lệnh

npm create vite@latest

Câu lệnh này có nghĩa là khởi tạo một dự án dựa trên Vite phiên bản mới nhất. Nếu muốn khởi tạo với một phiên bản cụ thể nào đó thì các bạn thay đổi latest bằng số version đó. Nói sơ qua thì Vite là một công cụ để giúp cho việc phát triển app của developer dễ dàng và tiện lợi hơn. Những tính năng hay ho của Vite như là HMR nhanh giúp cho mình không cần reload trang web để thấy được những thay đổi mới nhất, nó sẽ tự reload luôn cho mình. Hỗ trợ CSS, typescript, JSX,..., tối ưu quá trình build và còn nhiều thứ nữa.

Chúng ta sẽ được hỏi về tên dự án, mình sẽ đặt tên dự án là thich-hoc-todo-fe. Tiếp đến là chọn framework thì mình sẽ chọn React vì chúng ta đang học ReactJS mà 😄. Sau đó là chọn ngôn ngữ javascript hay typescript. Để dễ tiếp cận với nhiều bạn hơn thì mình chọn Javascript.

Đây là cấu trúc của dự án khi đã hoàn thành những bước trên.

Chúng ta có vite.config.js dùng để config vite. package.json dùng để chứa thông tin dự án như tên dự án, version bao nhiêu và đồng thời là những package được cài vào dự án, scripts để chạy, build dự án.

Tiếp theo đó là index.html, nhìn vào content của file này các bạn sẽ thấy chỉ là cấu trúc một file html đơn giản và có thẻ div tag với id là root. Các bạn lưu ý thẻ này vì script của chúng ta khi chạy React, sẽ tìm đến element có id là root và bắt đầu quá trình render. Bên duới là import script có tên là main.jsx nằm trong thư mục src, kiểu là module. Thư mục public chứa một file svg để serve thôi, không có gì đáng nói. Và cuối cùng, quan trọng nhất là folder src, chúng ta sẽ dành nhiều thời gian để thêm code vào trong thư mục này.

Mở file main.jsx lên các bạn sẽ thấy code trong đây khá đơn giản. Tìm đến element có id là root, bỏ vào function createRoot và gọi function render ra để render component có tên là app. Ở đây chúng ta cần lưu ý hai package là react và react-dom. React chứa API để tương tác với react còn react-dom sẽ chứa API để làm việc với cây DOM của HTML. Các bạn sẽ thấy có cả React.StrictMode, đây là mode để tìm nhận dạng những lỗ hổng, những lỗi tiêm năng và báo cho dev biết để sửa.

Mở App.jsx ra thì thấy code quá trời code. Bây giờ mình sẽ không giải thích những code này, phần này để sau. Các bạn chỉ cần biết đơn giản là đây là component tên App, nó sẽ render ra mấy cái thẻ tag nằm trong return. Và những thẻ tag được render này sẽ nằm ở trong thẻ tag có id là root.

Chạy app

Để chạy app, các bạn cần cài đặt những package cần thiết trước, tuỳ các bạn dùng npm, yarn hay là pnpm thì các bạn chạy lệnh tương ứng để cài đặt package. Mình dùng yarn nên mình sẽ chạy lệnh.

yarn install

Sau khi cài đặt xong, các bạn sẽ thấy trong dự án của chúng ta có thư mục tên là node_modules. Đây là thư mực chứa những package cần thiết để app mình có thể hoạt động. Cài xong rồi thì chúng ta dùng lệnh yarn dev để chạy app. Lệnh yarn dev này sẽ chạy app trong chế độ development nên không có tối ưu về perfomance, bộ nhớ,... nhưng bù lại, rất tiện cho quá trình code vì chúng ta sẽ có thể dò lỗi, hot reload,... .

Khi chạy, các bạn sẽ thấy terminal hiện ra thông tin như thế này. Bấm vào đường dẫn http://localhost:5173 để truy cập vào app.

Hình ảnh đầu tiên từ chiếc app todo triệu đô chuẩn bị khuynh đảo thế giới.

Mở inspect lên, coi cấu trúc các bạn sẽ thấy, component app được render ở trong thẻ tag có id là root.

Ok, giờ chúng ta sẽ có thay đổi nho nhỏ để thấy app thay đổi ra sao nhé. Các bạn vào trong App.jsx, ở dưới thẻ tag có class name là App, thêm tag p với content là Greeting from Thich Hoc. Không cần refresh lại trang nhé, mở qua tab của app và xem thay đổi.

Ngon lành cành đào, content chúng ta vừa thay đổi bây giờ đã hiển thị trên app. Chú ý là chúng ta không cần reload trang để thấy được thay đổi, đây là hot reload, khi bạn thay đổi content, nó sẽ tự động reload lại và cập nhật hiển thị cho dev, rất là tiện lợi.

Kết

Kết lại là trong bài này, mình đã nói về React là gì, tại sao là React và hướng dẫn các bạn cách để có thể tạo một project React căn bản, thay đổi một ít, giải thích về dự án khi mới khởi tạo. Nếu có câu hỏi gì thì các bạn cứ comment bên dưới nhé. Chúc các bạn code vui vẻ.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 500

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 414

- vừa được xem lúc

Một số phương thức với object trong Javascript

Trong Javascript có hỗ trợ các loại dữ liệu cơ bản là giống với hầu hết những ngôn ngữ lập trình khác. Bài viết này mình sẽ giới thiệu về Object và một số phương thức thường dùng với nó.

0 0 136

- vừa được xem lúc

Tìm hiểu về thư viện axios

Giới thiệu. Axios là gì? Axios là một thư viện HTTP Client dựa trên Promise.

0 0 117

- vừa được xem lúc

Imports và Exports trong JavaScript ES6

. Giới thiệu. ES6 cung cấp cho chúng ta import (nhập), export (xuất) các functions, biến từ module này sang module khác và sử dụng nó trong các file khác.

0 0 93

- vừa được xem lúc

Bài toán đọc số thành chữ (phần 2) - Hoàn chỉnh chương trình dưới 100 dòng code

Tiếp tục bài viết còn dang dở ở phần trước Phân tích bài toán đọc số thành chữ (phần 1) - Phân tích đề và những mảnh ghép đầu tiên. Bạn nào chưa đọc thì có thể xem ở link trên trước nhé.

0 0 229