CHƯƠNG 1. React JS là gì? React JS là một thư viện JavaScript với mã nguồn mở được phát triển bởi Facebook, ra mắt vào năm 2013, nó cho phép xây dựng giao diện người dùng (UI) từ những đoạn code nhỏ và độc lập gọi là “components”. Đây là một thư viện rất phổ biến hiện nay giúp cho các lập trình viên xây dựng UI một cách hiệu quả và linh hoạt [3]. Ưu điểm của React JS: - Tạo ra các component độc lập và có thể được gọi để tái sử dụng trong project đó.
Trong React việc xây dựng giao diện người dùng dựa trên việc kết hợp các components lại với nhau giúp việc lập trình trở nên nhanh chóng. - React JS giúp cải thiện hiệu suất rất nhiều bằng cách sử dụng Virtual DOM. Reactjs cũng tính toán những thay đổi nào cần cập nhật lên DOM và chỉ thực hiện chúng bằng việc sử dụng một thuật toán thông minh để tạo lại các thành phần khác biệt giữa cây mới và cây cũ. Bởi vì cả hai cây HTML cũ và mới đều được lưu trong bộ nhớ, Điều này giúp Reactjs tránh những thao tác không cần thiết trên DOM [1].
- Dễ dàng trong việc chia phân công chia các task, chia màn hình ứng dụng đơn giản. Mỗi người sẽ được đảm nhiệm làm một component riêng biệt sẽ không làm ảnh hưởng đến mã nguồn của các lập trình viên khác. - Khi các thành phần này hoàn thiện và được kết nối hoàn chỉnh nếu có xảy ra những sai sót hoặc hoặc cần nâng cấp, bảo trì sẽ dễ dàng biết cách tách nhỏ từng component để sửa chữa và phát triển. Một số khái niệm liên quan đến React JS 1.
Components Components giúp phân chia các UI (giao diện người dùng) thành các phần nhỏ để dễ dàng quản lý và tái sử dụng. 4 Các components thực hiện công việc giống như các functions trong JavaScript nhưng chúng độc lập và nhiệm vụ là trả về HTML thông qua hàm render. Components được sử dụng để nói cho React biết ta muốn hiển thị gì trên màn hình. Khi thay đổi dữ liệu, React sẽ cập nhật và render lại cho các component một cách hiệu quả.
Components trong React thường được viết theo 2 loại chính đó là Function component và Class component.1: Component trong React JS Function Component: Function Component là một pure function để được dùng để khai báo một component. Ban đầu function component chỉ được sử dụng để viết các component với mục đích render các đoạn HTML. Nhưng với các component theo hướng này thì sẽ không can thiệp vào lifecycle của component. Do đó nó thường được biết đến với tên gọi là Stateless Component [1].
Class Component: Để tạo một class component ta phải khai báo một class javascript và cho extends React. Trong class component đó phải dùng hàm render và lệnh return () là phải có để xuất dữ liệu. Sau đó sử dụng export để có thể dễ dàng gọi và tái sử dụng component [1]. Một component nhận vào các đối số truyền vào gọi là props, và trả về một hệ thống cấp bậc các view để hiển thị thông qua phương thức render.
Phương thức render sẽ trả về những gì chúng ta muốn thấy trên màn hình. React sẽ nhận mô tả và hiển thị kết quả. Props Props là từ viết tắt của properties là một object được truyền vào trong một components, mỗi components sẽ nhận vào props và trả về react element. Props là cách để các component có thể nhận được các giá trị của thuộc tính truyền vào từ bên ngoài vào và giao tiếp giữa các components với nhau bằng cách truyền tham số qua lại giữa các components.
Khi một components cha truyền cho components con một props thì components con chỉ có thể đọc và sử dụng chứ không thể chỉnh sửa nó bên phía components cha. Cách truyền props cũng giống như cách thêm một attributes cho một element HTML [1]. Cú pháp như sau: Hình 1.2: Cú pháp props trong Class Component và Function Component Truyền dữ liệu thông qua Props: Ví dụ khi truyền dữ liệu từ Component cha xuống Component con. Trong phương thức renderName của Component cha ta truyền vào props value xuống Component con.
Trong phương thức render của Component con ta sử dụng props đã truyền ở trên để hiển thị giá trị được truyền vào bằng {this. State State là thành phần của component, nó là một object được sử dụng để chứa dữ liệu hoặc thông tin về components. Khác với props chúng ta có thể truyền props từ component này sang các components khác nhau thì state chỉ tồn tại trong phạm vi của components chứa nó. State có thể được cập nhật thay đổi bất cứ khi nào bằng setState.
Mỗi khi state được cập nhật thì components đó sẽ được re-render lại. Trong một dự án React JS, state được dùng để phản hồi các yêu cầu từ người dùng, cập nhật trạng thái giao diện hay lưu trữ một dữ liệu nào đó trong components. 6 Sự khác nhau giữa Props và State: Bảng 1.1: Bảng so sánh giữa Props và State Props State Có thể nhận giá trị ban đầu từ component cha Có Có Có thể thay đổi bởi component cha Có Không Có thể set giá trị mặc định bên trong component Có Có Có thể thay đổi, cập nhật bên trong component Không Có Có thể set giá trị ban đầu cho các component con Có Có Có thể thay đổi trong các component con Có Không 1. Sơ lược về ngôn ngữ C# C# (hay C sharp) là một ngôn ngữ lập trình thuần hướng đối tượng được phát triển bởi Microsoft.
C# được ra đời vào năm 2000, được thiết kế chủ yếu bởi Anders Hejlsberg – một kiến trúc sư phần mềm nổi tiếng với các sản phẩm như Turbo Pascal, Delphi [4]. Được xây dựng và phát triển dựa trên nền tảng của 2 ngôn ngữ lập trình là C++ và Java. Do đó C# được xem tả là ngôn ngữ có sự cân bằng giữa C++, Visual Basic, Delphi và Java [5]. C# với sự hỗ trợ mạnh mẽ của .NET Framework giúp cho việc tạo một ứng dụng Windows Forms hay WPS (Windows Presentation Foundation) trở nên rất dễ dàng.
Đặc trưng của ngôn ngữ C# C# là một ngôn ngữ rất đơn giản, với khoảng 80 từ khóa và hơn 10 kiểu dữ liệu dựng sẵn, nhưng C# có tính diễn đạt cao. C# hỗ trợ lập trình có cấu trúc, hướng đối tượng, hướng thành phần. Trọng tâm của ngôn ngữ hướng đối tượng là lớp. Lớp định nghĩa kiểu dữ liệu mới, cho phép mở rộng ngôn ngữ theo hướng cần giải quyết.
C# có những từ khóa dành cho việc khai báo lớp, phương thức, thuộc tính mới. C# hỗ trợ đầy đủ khái niệm trụ cột trong lập trình hướng đối tượng như đóng gói, thừa kế, đa hình, trừu tượng. 7 C# hỗ trợ khái niệm giao diện interfaces (tương tự Java). Một lớp chỉ có thể kế thừa duy nhất một lớp cha nhưng có thể cài đặt nhiều giao diện.
C# cũng cho truy cập trực tiếp bộ nhớ dùng con trỏ kiểu C++, nhưng vùng mã đó được xem như không an toàn. CLR sẽ không thực thi việc thu dọn rác tự động các đối tượng được tham chiếu bởi con trỏ cho đến khi lập trình viên tự giải phóng. Định nghĩa lớp trong C# không đòi hỏi tách rời tập tin tiêu đề với tập tin cài đặt như C++. Hơn thế C# hỗ trợ kiểu sưu liệu mới, cho phép sưu liệu trực tiếp trong tập tin mã nguồn.
Đến khi biên dịch sẽ tạo tập tin sưu liệu theo định dạng XML. C# là một ngôn ngữ khá mạnh có tính tương tác với cơ sở dữ liệu nên được sử dụng khá rộng rãi trong việc triển khai các ứng dụng phần mềm, chương trình quản lý và nhiều ứng dụng khác [5]. Ưu điểm của C# - Là một trong số những ngôn ngữ thuần hướng đối tượng. - Gần gũi, dễ học với các ngôn ngữ lập trình thông dụng như C++, Java, Pascal.
- Thường được sử dụng để lập trình Windows, thiết kế winform đơn giản và dễ hiểu. - Tương tác với Database dễ dàng.NET nhẹ, miễn phí, hỗ trợ nhiều phương thức, chức năng. - Là ngôn ngữ mã nguồn mở giúp dễ dàng tìm hiểu, trao đổi. - Code/Build trên Visual Studio, một IDE mạnh mẽ, phổ biến của Microsoft giúp build và debug tiện lợi.
- Có thể được dùng để lập trình web thông qua C# thuần hoặc ASP. Nhược điểm của C# - C# là chỉ chạy trên nền Windows và có cài. - Thao tác đối với phần cứng yếu hơn so với ngôn ngữ khác, hầu hết phải dựa vào windows. - Sử dụng Database chỉ tiện lợi nhất với SQL Server [7].NET Khi Microsoft công bố C# vào tháng 7/2000, việc khánh thành nó chỉ là một phần trong số rất nhiều sự kiện nền tảng .NET được công bố.NET là bộ khung phát triển ứng dụng mới, nó cung cấp một giao diện lập trình ứng dụng (Application Programming Interface – API) mới mẽ cho các dịch vụ và hệ điều hành Windows, cụ thể là Windows 2000, nó cũng mang lại nhiều kỹ thuật khác nổi bật của Microsoft suốt từ những năm 90.
Trong số đó có các dịch vụ COM+, công nghệ ASP, XML và thiết kế hướng đối tượng, hỗ trợ các giao thức dịch vụ web mới như SOAP, WSDL và UDDL với trọng tâm là Internet, tất cả được tích hợp trong kiến trúc DNA [8].NET bao gồm 4 nhóm sau: 1. Một là tập các ngôn ngữ bao gồm C# và Visual Basic .NET; một tập các công cụ phát triển bao gồm Visual Studio .NET; một tập đầy đủ các thư viện phục vụ cho việc xây dựng các ứng dụng web, các dịch vụ web và ứng dụng Windows; còn có CLR – Common Language Runtime: (ngôn ngữ thực thi dùng chung) để thực thi các đối tượng được xây dựng trên bộ khung này. Một tập các Server Xí nghiệp .NET như SQL Server 2000, Exchange 2000, BizTalk 2000, chúng cung cấp các chức năng cho việc lưu trữ dữ liệu quan hệ, thư điện tử, thương mại điện tử. Các dịch vụ web thương mại điện tử; nhà phát triển có thể dùng các dịch vụ này để xây dựng các ứng dụng đòi hỏi tri thức về định danh người dùng.NET cho các thiết bị không phải PC như điện thoại, thiết bị game.NET Core là gì? ASP.NET Core là một web framework mã nguồn và được tối ưu hóa cho cloud để phát triển các ứng dụng web chạy trên nhiều nền tảng như Windows, Linux và Mac.
Hiện tại, nó bao gồm MVC framework được kết hợp các tính năng của MVC và Web API thành một web framework duy nhất. Các ứng dụng ASP.NET Core có thể chạy trên .NET Core hoặc trên .NET Framework hoàn chỉnh. 9 Nó đã được thiết kế để cung cấp một framework tối ưu cho các ứng dụng để triển khai tới cloud hoặc chạy on-premises. Nó bao gồm những modular với các thành phần tối thiểu, do đó bạn giữ được tính linh hoạt trong quá trình xây dựng các giải pháp của mình.