AngularJS khác với jQuery như thế nào


388

Tôi chỉ biết một thư viện js và đó là jQuery .
Nhưng các lập trình viên khác của tôi trong nhóm đang thay đổi AngularJS làm thư viện mặc định của họ trong dự án mới.

Tôi không biết gì về nó. Nó khác với jQuery như thế nào?
Tôi đã có một bộ các hàm được thực hiện cho các tác vụ tương tự trong jQuery. Tôi vẫn có thể sử dụng công cụ jQuery với AngularJS chứ?

Câu trả lời:


414
  1. Trong khi Angular 1 là một khung, Angular 2 là một nền tảng . (tham khảo )

Đối với các nhà phát triển, Angular2 cung cấp một số tính năng ngoài việc hiển thị dữ liệu trên màn hình. Ví dụ: sử dụng công cụ angular2 cli có thể giúp bạn "biên dịch trước" mã của bạn và tạo mã javascript cần thiết ( lắc cây ) để thu nhỏ kích thước tải xuống xuống 35Kish.

  1. Angular2 giả lập Shadow DOM. (tham khảo )

Điều này mở ra một cánh cửa cho kết xuất máy chủ có thể giải quyết vấn đề SEO và hoạt động với Nariescript, v.v. không hoạt động trên trình duyệt.

AngularJS là một khung . Nó có các tính năng sau

  1. Ràng buộc dữ liệu hai chiều
  2. Mẫu MVW (MVC-ish)
  3. Bản mẫu
  4. Chỉ thị tùy chỉnh (các thành phần có thể tái sử dụng, đánh dấu tùy chỉnh)
  5. Thân thiện với nhà hàng
  6. Liên kết sâu (thiết lập liên kết cho bất kỳ trang động nào)
  7. Xác nhận mẫu
  8. Truyền thông máy chủ
  9. Bản địa hóa
  10. Phụ thuộc tiêm
  11. Môi trường thử nghiệm đầy đủ (cả đơn vị, e2e)

kiểm tra bài thuyết trình này và phần giới thiệu tuyệt vời này

Đừng quên đọc hướng dẫn dành cho nhà phát triển chính thức

Hoặc học nó từ những video hướng dẫn tuyệt vời này

Nếu bạn muốn xem thêm video hướng dẫn, hãy xem bài đăng này, Bộ sưu tập 60+ hướng dẫn AngularJS tốt nhất .

Bạn có thể sử dụng jQuery với AngularJS mà không gặp vấn đề gì.

Trong thực tế, AngularJS sử dụng jQuery lite trong đó, đây là một công cụ tuyệt vời.

Từ FAQ

Angular có sử dụng thư viện jQuery không?

Có, Angular có thể sử dụng jQuery nếu nó có trong ứng dụng của bạn khi ứng dụng đang được khởi động. Nếu jQuery không có trong đường dẫn kịch bản của bạn, Angular sẽ quay lại triển khai tập hợp con của jQuery mà chúng ta gọi là jQLite.

Tuy nhiên, đừng cố sử dụng jQuery để sửa đổi DOM trong bộ điều khiển AngularJS, hãy thực hiện theo chỉ thị của bạn.

Cập nhật:

Angular2 được phát hành. Đây là một danh sách tuyệt vời các tài nguyên cho người mới bắt đầu


8
Tôi có phải phát triển ứng dụng đầy đủ trong Angular js không hoặc tôi có thể sử dụng ứng dụng đó trên một vài trang và trên một vài lời xin lỗi tôi sử dụng jquery đơn giản
Mirage

8
+1 Câu trả lời tuyệt vời. Tôi sẽ nói rằng Angular đến gần hơn với mẫu MVVM.
GFoley83

8
Tôi khá chắc chắn Angular là một MVW
iConnor

2
Trong vài năm, nó đã gần với MVC. Nhưng bây giờ đang bao thanh toán và cải tiến api, nó gần với MVVM hơn. Trong phạm vi Angular $, hoạt động như một VM (xem Mô hình).
Bất khả chiến bại

14
Đối với bất kỳ người nào trong tương lai tự hỏi (như tôi), MVW == Model-View- Any , như trong " m odel- v iew- w hthing-works-for-you" . Nói cách khác, MV * .
David Frye

40

Tôi muốn thêm một cái gì đó liên quan đến sự khác biệt của AngularJS với jQuery từ góc độ của nhà phát triển.

Trong AngularJS bạn phải có một cái nhìn và cách tiếp cận rất có cấu trúc về những gì bạn muốn đạt được. Rất hiếm khi theo một kiểu tuyến tính để hoàn thành một nhiệm vụ, nhưng thay vào đó, việc trao đổi giữa các đối tượng khác nhau sẽ đảm nhận các yêu cầu và hành động, do đó, là cần thiết vì góc là một khung dựa trên MVC . Nó cũng đòi hỏi ít nhất là kế hoạch chi tiết chung của ứng dụng đã hoàn thành, vì mã hóa phụ thuộc nhiều vào cách bạn muốn các tương tác được hoàn thành.

jQuery giống như một bài thơ miễn phí , bạn viết các dòng và giữ một số quan hệ và động lực phù hợp để hoàn thành nhiệm vụ của bạn.

Mặc dù, trong Angular JS, bạn nên tuân theo một số quy tắc cũng như giữ cho động lực và quan hệ đúng đắn, có thể nó giống như sonnet Spencerian cổ điển (một nhà thơ cổ điển nổi tiếng) có bài thơ có cấu trúc và gắn liền với nhiều quy tắc.

So với AngularJS, jQuery giống như một tập hợp các mã và hàm (như đã được đề cập, rất tốt cho thao tác DOM và thành tích hiệu quả nhanh), trong khi AngularJS là một khung thực sự cung cấp cho nhà phát triển khả năng xây dựng web doanh nghiệp ứng dụng với nhiều ràng buộc dữ liệu và trao đổi trong một định tuyến và quản lý được tổ chức tuyệt vời.

Hơn nữa, AngularJS không phụ thuộc vào jQuery để hoàn thành nhiệm vụ của mình. Nó có hai tính năng rất tuyệt vời không có trong jQuery theo bất kỳ nghĩa nào:

1- Angular JS dạy cho bạn cách CODE và hoàn thành mục tiêu, không chỉ hoàn thành mục tiêu bằng bất kỳ phương tiện nào. Đáng nói là AngularJS sử dụng đầy đủ cốt lõi và trái tim của Javascripts và mở đường cho bạn kết hợp trong ứng dụng của mình, các kỹ thuật như DI (tiêm phụ thuộc). Để làm việc với angularJS, bạn nên (hoặc phải) tìm hiểu thêm các kỹ thuật mã hóa nâng cao với Javascript.

2- Angular JS hoàn toàn độc lập để xử lý các chỉ thị và cấu trúc ứng dụng của bạn; sau đó bạn có thể đơn giản tuyên bố rằng jQuery có thể làm điều tương tự (tính độc lập), nhưng, thực sự, AngularJS, như nhiều lần được đề cập trong các dòng trên, có tính độc lập theo cách dựa trên cấu trúc MVC tuyệt vời nhất có thể.

Một lưu ý cuối cùng là, không có cuộc chiến về Tên, vì nó rất đáng lo ngại khi bị thiên vị, hoặc chủ quan. Tầm quan trọng và sự vĩ đại của jQuery đã được chứng minh, nhưng những hạn chế và hạn chế của chúng (của bất kỳ khuôn khổ hoặc phần mềm nào) là mối quan tâm của các cuộc thảo luận và các cuộc tranh luận tương tự xung quanh.

Cập nhật:

Sử dụng AngularJS là quyết định vì nó tốn kém về mặt triển khai, nhưng tìm thấy một cơ sở mạnh mẽ để mở rộng, chuyển đổi và bảo trì ứng dụng trong tương lai. AngularJS dành cho Thế giới mới của Web. Nó được nhắm mục tiêu xây dựng các ứng dụng được đặc trưng bởi mức tiêu thụ tài nguyên ít nhất của chúng (chỉ tải các tài nguyên cần thiết từ máy chủ), thời gian đáp ứng nhanh và mức độ duy trì cao và khả năng mở rộng được bao bọc xung quanh một hệ thống có cấu trúc.


"Để làm việc với angularJS, bạn nên (hoặc phải) tìm hiểu thêm các kỹ thuật mã hóa nâng cao với Javascript" - vui lòng cho tôi xem xét các ý nghĩa của bạn về kỹ thuật nâng cao?
antew

@MostafaTalebi, tôi chỉ nói đùa, nhưng không thực sự hiểu phần đó "JavaScript là một khái niệm ??" Điều đó có nghĩa là gì?? bạn có thể giải thích thêm? ehh có cách nào chúng ta liên lạc không ??
azerafati

Ý tôi là nó là một kịch bản :)))
Mostafa Talebi

Tôi trộn lẫn một thứ! ví dụ: chúng tôi sử dụng php cho phía máy chủ và chúng tôi lấy khung của chúng tôi dựa trên khái niệm MVC và trong khuôn mẫu mà chúng tôi sử dụng javascript, chúng tôi cũng sử dụng Angular js vì vậy ở đây js MVC là vô dụng, phải không?
Farhad

28

AngularJS: AngularJS dành cho việc phát triển các ứng dụng web nặng. AngularJS có thể sử dụng jQuery nếu nó có trong ứng dụng web khi ứng dụng đang được khởi động. Nếu nó không có trong đường dẫn kịch bản thì AngularJS sẽ quay trở lại việc thực hiện tập hợp con của jQuery.

JQuery: jQuery là một thư viện JavaScript nhỏ, nhanh và giàu tính năng. Nó làm cho mọi thứ như chuyển đổi và thao tác tài liệu HTML, xử lý sự kiện, hoạt hình và Ajax đơn giản hơn nhiều. jQuery đơn giản hóa rất nhiều thứ phức tạp từ JavaScript, như các cuộc gọi AJAX và thao tác DOM.

Đọc thêm chi tiết tại đây: angularjs-vs-jquery


20

Tôi nghĩ rằng đây là một biểu đồ rất tốt mô tả sự khác biệt trong ngắn hạn. Nhìn lướt qua nó cho thấy hầu hết sự khác biệt.

nhập mô tả hình ảnh ở đây

Một điều tôi muốn thêm là, AngularJS có thể được tạo để tuân theo mẫu thiết kế MVVM trong khi jQuery không tuân theo bất kỳ mẫu nào Hướng đối tượng tiêu chuẩn.


12

Họ làm việc ở các cấp độ khác nhau.

Cách đơn giản nhất để xem sự khác biệt, từ góc độ người mới bắt đầujQuery về cơ bản là một bản tóm tắt của JavaScript, vì vậy cách chúng tôi thiết kế một trang cho JavaScript là cách chúng tôi sẽ làm jQuery . Bắt đầu với DOM sau đó xây dựng một lớp hành vi trên đó. Không như vậy với Angular.Js . Quá trình thực sự bắt đầu từ mặt đất lên, vì vậy kết quả cuối cùng là chế độ xem mong muốn.

Với jQuery, bạn thực hiện các thao tác dom, với Angular.Js bạn tạo toàn bộ ứng dụng web.


jQuery được xây dựng để trừu tượng hóa các idiosyncracies khác nhau và hoạt động với DOM mà không cần phải thêm kiểm tra IE6, v.v. Theo thời gian, nó đã phát triển một API tốt, mạnh mẽ cho phép chúng tôi làm rất nhiều thứ, nhưng cốt lõi, nó có nghĩa là để xử lý DOM, tìm các yếu tố, thay đổi giao diện người dùng, v.v. Hãy nghĩ về nó như làm việc trực tiếp với các loại hạt và bu lông.

Angular.Js được xây dựng như một lớp trên đỉnh jQuery , để thêm các khái niệm MVC vào kỹ thuật front end. Thay vì cung cấp cho bạn API để hoạt động với DOM, Angular.Js cung cấp cho bạn các thành phần tùy chỉnh, tạo khuôn mẫu, tùy chỉnh (tương tự như UI UI , nhưng khai báo thay vì kích hoạt thông qua JS) và nhiều hơn nữa. Hãy nghĩ về nó như là làm việc ở cấp độ cao hơn, với các thành phần mà bạn có thể nối với nhau, thay vì trực tiếp ở cấp độ đai ốc và bu lông.

Ngoài ra , Angular.Js cung cấp cho bạn các cấu trúc và khái niệm áp dụng cho các dự án khác nhau, như Bộ điều khiển, Dịch vụ và Chỉ thị. Bản thân jQuery có thể được sử dụng theo nhiều cách (gazillion) để làm điều tương tự. Rất may, đó là cách ít hơn với Angular.Js , giúp cho việc ra vào dự án dễ dàng hơn. Nó cung cấp một cách lành mạnh cho nhiều người đóng góp cho cùng một dự án, mà không phải học lại một hệ thống từ đầu.


Một so sánh ngắn có thể là đây-

jQuery

  • Những người có kiến ​​thức phù hợp về bộ chọn CSS có thể dễ dàng sử dụng
  • Nó là một thư viện được sử dụng cho Thao tác DOM
  • Không có gì để làm với các mô hình
  • Dễ dàng thao tác nội dung của một trang web
  • Áp dụng các kiểu để làm cho UI hấp dẫn hơn
  • Truyền tải DOM dễ dàng
  • Hiệu ứng và hình ảnh động
  • Đơn giản để thực hiện cuộc gọi AJAX và
  • Tiện ích sử dụng
  • không có tính năng ràng buộc hai chiều
  • trở nên phức tạp và khó bảo trì khi quy mô của dự án tăng lên
  • Đôi khi bạn phải viết thêm mã để đạt được chức năng tương tự như trong Angular.Js

Angular.Js

  • Nó là một khung MVVM
  • Được sử dụng để tạo SPA (Ứng dụng một trang)
  • Nó có các tính năng chính như định tuyến, chỉ thị, ràng buộc dữ liệu hai chiều, mô hình, tiêm phụ thuộc, kiểm tra đơn vị, v.v.
  • là mô-đun
  • Duy trì, khi quy mô dự án tăng
  • nhanh
  • Liên kết dữ liệu hai chiều Mẫu REST dựa trên MVC thân thiện
  • Liên kết sâu
  • Tạo khuôn
  • Xác thực mẫu dựng sẵn
  • Phụ thuộc tiêm
  • Bản địa hóa
  • Môi trường thử nghiệm đầy đủ
  • Truyền thông máy chủ

Và nhiều hơn nữa

nhập mô tả hình ảnh ở đây

Hãy nghĩ rằng điều này sẽ giúp.

Nhiều hơn có thể được tìm thấy -


3

Câu hỏi: -

jQuery is a lightweight and feature-rich JavaScript Library that helps web developers
by simplifying the usage of client-side scripting for web applications using JavaScript.
It extensively simplifies using JavaScript on a website and its lightweight as well as fast.

So, using jQuery, we can:

easily manipulate the contents of a webpage
apply styles to make UI more attractive
easy DOM traversal
effects and animation
simple to make AJAX calls and
utilities and much more 

AngularJS: -

AngularJS is a product by none other the Search Engine Giant Google and its an open source
MVC-based framework(considered to be the best and only next generation framework). AngularJS
is a great tool for building highly rich client-side web applications.

As being a framework, it dictates us to follow some rules and a structured approach. Its
not just a JavaScript library but a framework that is perfectly designed (framework tools
are designed to work together in a truly interconnected way).

In comparison of features jQuery Vs AngularJS, AngularJS simply offers more features:

Two-Way data binding
REST friendly
MVC-based Pattern
Deep Linking
Template
Form Validation
Dependency Injection
Localization
Full Testing Environment
Server Communication
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.