Tại sao tôi nên sử dụng Angular? [đóng cửa]


20

Từ hướng dẫn Angular cơ bản, có vẻ như tất cả những gì nó làm là tìm nạp một số JSON từ API và hiển thị nó. Ngoài ra, có ma thuật ràng buộc kép của nó.

Nhưng tại sao tôi lại sử dụng nó thay vì giải pháp phụ trợ (như Rails) xây dựng chế độ xem trong phần phụ trợ và phục vụ nó cho người dùng, với mọi thứ đã có sẵn? Các trường hợp sử dụng là gì?

Câu trả lời:


26

TLDR;

Angular giúp bạn đối phó với sự phức tạp vốn có trong giao diện người dùng phong phú. Khi độ phức tạp của UI tăng lên, mô hình truyền thống tạo các trang trên máy chủ trở nên phức tạp hơn nhiều. Angular cho phép bạn phân tách UI của bạn thành các phần có thể quản lý và cho phép bạn tách UI khỏi việc triển khai. Điều này làm cho việc tạo trang phía máy chủ trở nên dễ dàng hơn rất nhiều, nhưng Angular thực sự trở nên độc đáo khi bạn chuyển sang các ứng dụng dựa trên javascript thuần túy. Một ví dụ điển hình của một ứng dụng như vậy là Trello .

Câu chuyện dài

Angular không thực sự nhắm mục tiêu vào các trang web mà bạn có thể thoải mái triển khai bằng cách tạo mọi thứ trên máy chủ và gửi nó qua. Hơn nữa, mặc dù đó là một cách tiếp cận hoàn toàn tốt, hoạt động cho nhiều trang web và ứng dụng trên internet, nhưng nó trở nên ngày càng phức tạp (do đó khó khăn) để duy trì cách tiếp cận đó khi bạn cố gắng tăng mức độ tương tác trong trang web của mình.

Cuối cùng, cách bạn giải quyết vấn đề này là bằng cách đẩy UI của bạn ngày càng nhiều hơn vào phía Javascript của phương trình. Angular cho phép bạn chia UI của bạn thành các thành phần, giúp bạn phân tách rõ ràng giữa giao diện và cách thức hoạt động. Sau đó, bạn có thể xây dựng các trang khá đơn giản trên máy chủ và giao diện người dùng JS được sử dụng để tạo giao diện người dùng phong phú thực hiện các cuộc gọi riêng biệt trở lại máy chủ của bạn để lấy dữ liệu họ cần.

Tuy nhiên, có một điểm mà tất cả những gì bạn muốn làm là cung cấp một trang còn sơ khai tải một ứng dụng hoàn toàn dựa trên javascript. Có lẽ ví dụ nổi tiếng nhất về loại trường hợp sử dụng mà Angular thực sự tỏa sáng là Trello (nó sử dụng Backbone, không phải Angular, nhưng nó là trường hợp sử dụng tương tự). Có một trang web http://builtwith.angularjs.org/ có nhiều trang ví dụ sử dụng Angular.

Vậy câu trả lời ngắn gọn? Angular giúp dễ dàng tạo các giao diện người dùng tương tác cao, phong phú bằng cách cho phép bạn phân tách UI của mình thành các thành phần và cuối cùng chuyển hoàn toàn javascript.


3
AngularJ sodes không cung cấp sự phân tách rõ ràng về giao diện và logic.
rsman

13
@rsman, rõ ràng là có. Điểm chung của ràng buộc dữ liệu là bạn không viết cả đống mã thao tác DOM, góc cạnh sẽ giúp bạn, ergo, bạn xác định giao diện của nó như thế nào, bạn xác định cách thức tương tác của mình, v.v. phải kết hợp hai thứ đó lại với nhau để cập nhật mã trông giống như mã xử lý các tương tác.
đàn ông

3
Trello, được sử dụng trong ví dụ này không sử dụng blog Angular.fogcalet.com/the-trello-tech-stack
JAMESSTONEco

1
@jamesstoneco thực sự, không, tôi chỉ đơn giản sử dụng Trello như một ví dụ về ứng dụng JS hoàn toàn phía máy khách. Đó là một trong những sớm nhất để làm điều đó tốt.
chàng trai

7

Đó là về việc làm cho giao diện người dùng phản ứng nhanh hơn. Liên kết đôi, nội xạ phụ thuộc và vv có thể tạo các trang động khá dễ dàng. Bạn có thể viết các chỉ thị trong Angular cung cấp cho bạn một cách khai báo để xây dựng một khung nhìn.

Ví dụ, trong một dự án hiện tại, chúng tôi có chế độ xem sử dụng hàng trăm dòng mã JavaScript để tạo trải nghiệm người dùng đáp ứng. Mặc dù vậy, trang này có một chút lỗi và rất khó để duy trì. Chúng tôi bắt đầu tìm kiếm một lựa chọn tốt hơn và xem xét backbone.js và knout.js. Cuối cùng, chúng tôi đã thử Angular. Chúng tôi đã có thể tạo ra một trang nhanh nhạy và dễ bảo trì hơn chỉ với một vài dòng mã. Đã qua tất cả các mã thao tác DOM. Đã qua tất cả các sáng tạo xem phụ trợ lộn xộn phải được tìm nạp và chèn vào đúng nơi. Đã qua tất cả các mã được viết để giữ cho mô hình và chế độ xem đồng bộ. Với kinh nghiệm đó, quyết định chuyển sang Angular trở nên dễ dàng hơn và cho đến nay chúng tôi vẫn chưa hối hận.


"Đã qua tất cả các mã thao tác DOM." Đây là điều quan trọng nhất theo ý kiến ​​của tôi.
Bent

5

Angular là để phát triển Ứng dụng Trang đơn, nó giúp cung cấp bộ xương vững chắc cho ứng dụng của bạn. Nó cũng tốt với các biểu mẫu, không tốt lắm với các UI đông đúc phức tạp với nhiều dữ liệu. Liên kết dữ liệu hai chiều lúc đầu là "ma thuật" nhưng bạn phải lưu ý rằng hầu hết các khung gần đây (bao gồm cả Angular 2) đều tránh xa ràng buộc dữ liệu hai chiều cho cách tiếp cận luồng dữ liệu / sự kiện chảy xuống đơn giản hơn (nói rằng Câu chuyện sẽ quá dài ở đây).

Tôi cũng phải cảnh báo bạn rằng Angular không có cách làm việc nhất định và đôi khi cung cấp quá nhiều cách để nuôi mèo, điều này có thể khiến đường cong học tập trở nên dốc hơn. Ngoài ra, nếu bạn muốn mở rộng một ứng dụng Angular, bạn sẽ phải hiểu cơ chế bên trong của nó và tác động có thể đến hiệu suất. Một khi bạn làm điều đó, và một khi bạn thiết lập các mẫu thiết kế vững chắc nhất quán, bầu trời là giới hạn. Nhưng bạn cần dành thời gian cho nó.

Điều đó nói rằng, câu hỏi của bạn dường như là nhiều hơn về các trường hợp sử dụng của SPA chứ không phải là Angular.

Các trường hợp sử dụng của Ứng dụng một trang là để có các ứng dụng web có UI / UX mạnh mẽ và cảm giác ứng dụng tốt hơn nói chung. Bằng cách không phải tải lại trang của bạn, bạn tiết kiệm được thời gian kết xuất và băng thông. Bạn cũng tách dữ liệu và trình bày đó là tuyệt vời. Ứng dụng của bạn trở thành:

  • Các tệp tĩnh, bao gồm index.html của bạn
  • Một API REST phục vụ dữ liệu
  • Một ứng dụng front-end điều khiển dữ liệu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.