3.1. ReactJS
- React là một thư viện JavaScript để xây dựng giao diện người dùng. Nó được phát
triển bởi Facebook và có một cộng đồng lớn gồm các nhà phát triển và công ty cá nhân.
- React có thể được sử dụng làm cơ sở trong việc phát triển các ứng dụng một trang
hoặc di động.
- ReactJS cho phép Developer viết ứng dụng trực tiếp trên JavaScript. Khơng chỉ
vậy, ReactJS cịn sử dụng JSX – một sự pha trộn tuyệt vời của JavaScript và HTML làm rõ toàn bộ quá trình viết cấu trúc trang web. Developer giờ đây có thể tạo nên một tính năng mới và có thể xem nó xuất hiện ngay trong thời gian thực, giúp Developer có thể được đưa trực tiếp các đoạn HTML vào JavaScript
- Cho phép Developer chia nhỏ những cấu trúc UI phức tạp thành những
component độc lập. Developer sẽ không phải lo lắng về tổng thể ứng dụng web bởi giờ đây, họ đã có thể dễ dàng chia nhỏ các cấu trúc UI/UX phức tạp thành từng component đơn giản hơn.
- Thơng qua Props, các component có thể kết nối với nhau bằng cách sử dụng data
tùy biến. Điều này giúp chuyển các dữ liệu đã được tùy biến đến một UI component cụ thể.
- Tính năng State trong ReactJS giúp điều chỉnh trạng thái cho các component
(child) nhận data từ một component nguồn (parent). Developer có thể thay đổi trạng thái cho nhiều component (child) trên ứng dụng nhưng không ảnh hưởng tới component gốc (parent) đang ở trạng thái Stateful.
- React cung cấp nhiều công cụ out-of-the-box: Khi bạn bắt đầu những chuyến
phiêu lưu với React, đừng quên cài đặt extension chính thức của React Chrome, nó giúp debug app nhanh hơn.
17
3.2. NodeJS
- NodeJS là một nền tảng (Platform) phát triển độc lập được xây dựng ở trên
Javascript Runtime của Chrome mà chúng ta có thể xây dựng được các ứng dụng mạng một cách nhanh chóng và dễ dàng mở rộng.
- NodeJS được xây dựng và phát triển từ năm 2009, bảo trợ bởi công ty Joyent, trụ
sở tại California, Hoa Kỳ. Phần Core bên dưới của NodeJS được viết hầu hết bằng C++ nên cho tốc độ xử lý và hiệu năng khá cao.
- NodeJS thường được áp dụng cho các sản phẩm có lượng truy cập lớn, cần mở
rộng nhanh, cần đổi mới công nghệ, hoặc tạo ra các dự án Startup nhanh nhất có thể.
- Những đặc điểm làm nên lợi thế của NodeJS là:
+ Các ứng dụng NodeJS được viết bằng javascript, ngôn ngữ này là một ngôn ngữ khá thông dụng.
+ NodeJS chạy đa nền tảng phía Server, sử dụng kiến trúc hướng sự kiện Event- driven, cơ chế non-blocking I/O làm cho nó nhẹ và hiệu quả.
+ Có thể chạy ứng dụng NodeJS ở bất kỳ đâu trên máy Mac – Window – Linux, hơn nữa cộng đồng NodeJS rất lớn và hồn tồn miễn phí. Cộng đồng NodeJS là rất lớn và các package đều hoàn toàn free.
+ Các ứng dụng NodeJS đáp ứng tốt thời gian thực và chạy đa nền tảng, đa thiết bị.
3.3. MongoDB
- MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở, là CSDL thuộc NoSql
và được hàng triệu người sử dụng.
- MongoDB là một database hướng tài liệu (document), các dữ liệu được lưu trữ
trong document kiểu JSON thay vì dạng bảng như CSDL quan hệ nên truy vấn sẽ nhanh hơn.
18
- Với CSDL quan hệ chúng ta có khái niệm bảng, các cơ sở dữ liệu quan hệ (như
MySQL hay SQL Server...) sử dụng các bảng để lưu dữ liệu thì với MongoDB chúng ta sẽ dùng khái niệm là collection thay vì bảng. Các collection trong MongoDB được cấu trúc rất linh hoạt, cho phép các dữ liệu lưu trữ không cần tuân theo một cấu trúc nhất định.
3.4. Express
Express là một framework nhỏ gọn và linh hoạt dành cho NodeJS, cung cấp một bộ tính năng mạnh mẽ cho các ứng dụng web và di động. Express hỗ trợ các phương thức HTTP và middleware tạo ra một API vô cùng mạnh mẽ và dễ sử dụng. Một số chức năng chính của express như sau:
- Thiết lập các lớp trung gian để trả về các HTTP request.
- Định nghĩa router cho phép sử dụng với các hành động khác nhau dựa trên phương
thức HTTP và URL.
19