Đã là một IT chính hiệu và đã từng bắt tay xây dựng web-app thì chắc chắn bạn đã không còn lạ gì khi nghe đến cái tên AngularJS. AngularJS được đánh giá là một trong những Frontend Framework tốt nhất hiện nay trên thị trường và được dùng bởi các lập trình viên lão làng. Bài viết này sẽ đề cập đến AngularJS và các thuật ngữ liên quan đến framework nổi tiếng này.

I. AngularJS là gì?
AngularJS là một bộ JavaScript Framework mạnh mẽ nhất và thường được sử dụng để xây dựng project Single Page Application (SPA). Hoạt động của nó dựa theo các thuộc tính mở rộng HTML (các attributes tuân theo quy tắc của Angular).
Đây là một Framework mã nguồn mở được sử dụng hoàn toàn miễn phí và được ưa chuộng bởi hàng ngàn các lập trình viên trên thế giới. Ở những nước ngoài khác, Framework này được thế hệ Web 2.0 phát triển khá mạnh, tuy nhiên, tại Việt Nam thì nó vẫn chưa thực sự thông dụng lắm.
Để có thể bắt đầu bước vào giai đoạn tìm hiểu về AngularJS thì bạn phải là một front end developer nắm vững các kiến thức cơ bản về string, javascript, object,... đặc biệt là bạn cần phải có hiểu biết chuyên sâu về javascript. Ngoài ra, với bản chất của AngularJS là hoạt động dưới dạng Single Page, sử dụng API để lấy data, cho nên bạn phải thành thạo các kĩ thuật DHTML, AJAX.
II. Các đặc tính của AngularJS
AngularJS là một framework được phát triển dựa trên javascript nhằm tạo các web-app đa dạng. AngularJS thường được sử dụng để phát triển frontend thông qua các API để gọi data cùng với việc sử dụng mô hình MVC mạnh mẽ. Bạn không cần phải lo lắng về vấn đề tương thích trình duyệt vì mã nguồn AngularJS sẽ tự động tương thích với các trình duyệt khác nhau.
Ngoài ra, AngularJS là một open source và hoàn toàn miễn phí, được phát triển bởi hàng ngàn các lập trình viên giỏi trên thế giới.
Tóm lại, ta có thể hiểu rằng khi làm việc với AngularJS sẽ giống như là đang làm việc với Ajax, sử dụng theo cơ chế bind data, hoạt động theo cấu trúc mô hình MVC và sử dụng service để tương tác với dữ liệu từ server.
III. Đặc trưng của AngularJS
Với các tính năng chính sau đây khiến AngularJS trở thành một trong những Framework mạnh mẽ trên thị trường:

MVC (Model View Controller)
Framework này được xây dựng dựa theo khuôn mẫu nổi tiếng MVC (Model-View-Controller). Đây là một mẫu thiết kế mà ngày nay được sử dụng hầu hết các ứng dụng web. Mô hình này dựa trên việc chia lớp logic nghiệp vụ, lớp dữ liệu và lớp trình bày thành các phần riêng biệt khác nhau. Việc phân chia như vậy được thực hiện để mỗi phần có thể được quản lý dễ dàng hơn.
Data Model Binding
Bạn không nhất thiết phải viết mã đặc biệt để liên kết dữ liệu với HTML controls. Công đoạn này có thể thực hiện bởi Angular chỉ bằng cách thêm một vài đoạn mã.
Viết ít code hơn
Trong quá trình thao tác DOM, cần phải viết nhiều JavaScript để thiết kế ứng dụng. Nhưng với AngularJS, số lượng code sẽ làm bạn ngạc nhiên bởi sẽ ít hơn khi thao tác với DOM.
Có sẵn Unit Testing
Các lập trình viên tại Google không chỉ phát triển AngularJS mà còn phát triển một khung kiểm thử có tên “Karma” phục vụ cho việc thiết kế các Unit Testing cho các ứng dụng AngularJS.
IV. Các tính năng quan trọng của AngularJS
Dưới đây là các tính năng cốt lõi quan trọng trong AngularJS mà bạn cần biết :
- Data-binding: (liên kết dữ liệu) sẽ có chức năng tự động đồng bộ dữ liệu giữa model và view.
- Scope: (Phạm vi) Đây là những liên kết giữa Controller và View.
- Controller: Đó là những hàm JavaScript xử lý kết hợp với bộ điều khiển Scope.
- Service: Như đã đề cập ở trên, AngularJS sử dụng chủ yếu là các API được tạo dựng từ các web service (PHP, ASP) để thao tác với DB.
- Filters: Bộ lọc chọn lọc ra các thành phần của một mảng và sau đó trả về mảng mới.
- Directives: Đánh dấu các yếu tố của DOM, nghĩa là sẽ tạo ra các thẻ HTML tùy chỉnh.
- Templates: thông tin được hiển tị từ controller, đây là một thành phần của views.
- Routing: Tạo sự chuyển đổi giữa các action trong controller.
- MVC: Mô hình chia ra các thành phần riêng biệt thành Model, View, Controller. Đây được xem là một mô hình khá hay nhưng trong Angular thì nó được “cải biên” lại một chút gần giống với MVVM.
- Deep Linking: Liên kết sâu, nó cho phép bạn mã hóa trạng thái của ứng dụng trong các URL để có thể đánh dấu được với công cụ tìm kiếm.
- Dependency Injection: Angular giúp các nhà phát triển dễ dàng hơn trong việc tạo ứng dụng để phát triển, hiểu và thử nghiệm dễ dàng.
Các components chính của AngularJS
- ng-bind: liên kết dữ liệu ứng dụng AngularJS đến các thẻ HTML.
- ng-app: định nghĩa và liên kết ứng dụng AngularJS tới HTML.
- ng-model: gắn kết các giá trị của dữ liệu ứng dụng AngularJS đến các điều khiển đầu vào HTML.
V. Kiến trúc AngularJS
AngularJS dựa theo kiến trúc MVC, sơ đồ của khung MVC như dưới đây. Bộ điều khiển là đại diện cho lớp có logic nghiệp vụ. Người dùng sẽ kích hoạt các chức năng được lưu trữ bên trong bộ điều khiển. Các người dùng được xem là một phần của bộ điều khiển.
Lượt xem giúp thể hiện lớp trình bày cung cấp cho người dùng cuối. Mô hình này được dùng để đại diện cho dữ liệu. Dữ liệu trong mô hình có thể sẽ đơn giản.
Ví dụ: AngularJS có thể là ứng dụng quản lý thư viện.
- Mô hình (Model): Đại diện cho dữ liệu của thư viện, có thể bao gồm thông tin về sách như
id_sach
, ten_sach, tac_gia, nam_xuat_ban, the_loai, so_luong_con_lai. - Lượt xem (View): Hiển thị danh sách sách có sẵn trong thư viện, thông tin chi tiết của từng cuốn sách, hoặc giao diện để tìm kiếm, thêm mới, chỉnh sửa và xóa sách.
- Bộ điều khiển (Controller): Chứa logic để xử lý các yêu cầu từ người dùng, chẳng hạn như tìm kiếm sách, mượn sách, trả sách hoặc thêm sách mới vào hệ thống.
Khi một người dùng nhập tên sách cần tìm vào thanh tìm kiếm, bộ điều khiển sẽ lấy dữ liệu từ mô hình và cập nhật giao diện để hiển thị kết quả phù hợp.
VI. Ưu, nhược điểm của AngularJS
Ưu điểm:
- Đây được xem là giải pháp tốt nhất cho các Single Page Application dễ dàng.
- Code Front end thân thiện nhờ vào khả năng Binding data lên nền tảng HTML, thao tác rất thích.
- Dễ dàng Unit test.
- Dễ tái sử dụng component.
- Giúp các lập trình viên viết code ít hơn nhưng với nhiều chức năng hơn.
- Có khả năng chạy được trên mọi loại trình duyệt, bao gồm cả PC lẫn mobile.
Nhược điểm:
- Không an toàn : bản chất thật của AngularJS là Front End, mà hiển nhiên front end thì vốn không được bảo mật bằng Back End. Cho nên trong khi sử dụng API bạn cần xây dựng một hệ thống kiểm tra dữ liệu trả về tốt nhất.
- Một số trình duyệt có tính năng Disable Javascript nghĩa là trang web của bạn hoàn toàn không sử dụng được trên các trình duyệt đó.
Qua bài viết trên, chắc hẳn bạn đã hiển phần nào về AngularJS là gì rồi phải không. Để gia nhập hội IT lão làng thì cần có rất nhiều kiến thức ta cần phải học hơn. Hy vọng rằng với những thông tin cung cấp này sẽ hữu ích cho bạn.
FAQ - Giải đáp thắc mắc liên quan đến AngularJS
AngularJS dùng để làm gì?
AngularJS được hiểu là một khung Javascript được các nhà phát triển sử dụng nhằm để xây dựng cho các ứng dụng web, máy tính để bàn và thậm chí cả thiết bị di động. Phát triển các ứng dụng AngularJS liên quan đến việc sử dụng Typescript, Javascript, HTML, CSS…
AngularJS khác gì Angular?
AngularJS là từ được được dùng để chỉ Angular 1. AngularJS ra đời vào năm 2009 và được viết bằng JavaScript. Còn Angular là tên gọi chung của Angular 2 trở lên. Nó được viết bằng TypeScript – một phiên bản nâng cao của JavaScript và ra đời năm 2016.
Angular material là gì?
Angular Material là một thư viện thích hợp để tạo các ứng dụng web với hiệu ứng hấp dẫn và nhất quán. Bên cạnh đó, nó cũng là một framework thích hợp với những bạn mới bắt đầu tìm hiểu về Angular cùng những lợi ích tuyệt vời của nó.