Sự khác biệt giữa jQuery so với AngularJS và Node.js [đã đóng]


106

Tôi chỉ mới bắt đầu phát triển web và cho đến nay tôi biết:

HTML - bố cục của trang web

CSS - làm cho nó trông đẹp mắt

JavaScript - chức năng

Vậy thì jQuery , AngularJSNode.js là gì?

Sau khi tìm kiếm nhanh, tôi thấy jQuery là một "thư viện JavaScript", AngularJS là "khung ứng dụng web front-end mã nguồn mở dựa trên JavaScript", và Node.js là "môi trường chạy JavaScript".

Chúng dường như đều liên quan đến JavaScript, vậy chúng có phải là ngôn ngữ mới không? 'Framework / thư viện' có nghĩa là gì?

Một câu trả lời đơn giản sẽ được đánh giá cao. (Tôi mới bắt đầu lập trình web, nhưng tôi đã quen với lập trình).


2
"Thư viện" về cơ bản chỉ là một tập hợp các hàm hữu ích mà người khác đã viết và thử nghiệm cho bạn - jQuery là một tập hợp các hàm JavaScript. "Khung" là một loại trừu tượng trong đó mã cấu trúc ứng dụng phổ biến đã được viết cho bạn và bạn có thể ghi đè các bit của nó khi phù hợp với nhu cầu của ứng dụng cụ thể của bạn. NodeJS là một công cụ cho phép bạn chạy JavaScript ở đâu đó không phải trong trình duyệt (thường là trên máy chủ web, vì vậy thay vì Java hoặc DotNET hoặc PHP hoặc bất cứ thứ gì).
nnnnnn

3
Bạn sẽ ổn thôi. Bạn biết tại sao mà? Bởi vì bạn là một người nói tiếng Anh. Có rất nhiều thứ sẵn có cho bạn. Bạn chỉ cần dành thời gian và tìm hiểu nó. Ở đất nước tôi, tiếng Anh là một vấn đề lớn. Tôi biết rất nhiều người, đang gặp khó khăn trong việc học lập trình (rất nhiều người đã từ bỏ và chuyển sang làm công việc khác) chỉ vì tiếng Anh không tốt. Tuy nhiên, như tôi đã nói, bạn sẽ mất rất nhiều thời gian.
vothaison

Xem thêm câu hỏi này .
nnnnnn

Câu trả lời:


202

jQuery là một thư viện (phía máy khách)

jQuery là một thư viện JavaScript nhanh, nhỏ, nhẹ, "viết ít hơn, làm được nhiều hơn" và giàu tính năng.

Nó làm cho những thứ như thao tác và duyệt tài liệu HTML, xử lý sự kiện, hoạt ảnh và Ajax đơn giản hơn nhiều với một API dễ sử dụng hoạt động trên nhiều trình duyệt.

AngularJS là một khung công tác MVC (phía máy khách)

AngularJS là một khung JavaScript MVC phía máy khách để phát triển một ứng dụng web động.

Nó cho phép bạn sử dụng HTML làm ngôn ngữ mẫu và cho phép bạn mở rộng cú pháp của HTML để diễn đạt các thành phần của ứng dụng một cách rõ ràng và ngắn gọn. Liên kết dữ liệu và chèn phụ thuộc của AngularJS loại bỏ phần lớn mã mà bạn sẽ phải viết. Và tất cả đều diễn ra trong trình duyệt, khiến nó trở thành đối tác lý tưởng với bất kỳ công nghệ máy chủ nào. AngularJS ban đầu được bắt đầu như một dự án của Google, nhưng bây giờ nó là một khuôn khổ mã nguồn mở.

Node.js là một nền tảng và môi trường thời gian chạy (phía máy chủ)

Node.js là một môi trường chạy mã nguồn mở, đa nền tảng để phát triển các ứng dụng mạng và phía máy chủ được xây dựng trên Công cụ JavaScript của Google Chrome (V8 Engine). Các ứng dụng Node.js được viết bằng JavaScript và có thể chạy trong thời gian chạy Node.js trên OS X, Microsoft Windows và Linux.

Node.js cũng cung cấp một thư viện phong phú gồm các mô-đun JavaScript khác nhau giúp đơn giản hóa việc phát triển các ứng dụng web sử dụng Node.js ở mức độ lớn. Node.js sử dụng mô hình I / O hướng sự kiện, không chặn, giúp nó nhẹ và hiệu quả, hoàn hảo cho các ứng dụng thời gian thực sử dụng nhiều dữ liệu chạy trên các thiết bị phân tán.

Thư viện so với Framework

Sự khác biệt chính giữa thư viện và khung công tác là "Sự đảo ngược của kiểm soát". Khi bạn gọi một phương thức từ thư viện, bạn có quyền kiểm soát. Nhưng với một khuôn khổ, sự kiểm soát bị đảo ngược: khuôn khổ gọi bạn.

Nhập mô tả hình ảnh tại đây

Thư viện

Một tập hợp các chức năng hữu ích khi viết các ứng dụng web. Mã của bạn chịu trách nhiệm và nó sẽ gọi vào thư viện khi thấy phù hợp. Ví dụ: jQuery.

Khuôn khổ

Một triển khai cụ thể của một ứng dụng web, nơi mã của bạn điền vào các chi tiết. Khuôn khổ phụ trách và nó gọi vào mã của bạn khi nó cần một cái gì đó dành riêng cho ứng dụng. Ví dụ: AngularJS, Durandal , Ember.js , v.v.


27

Nói một cách đơn giản,

  • jQuery - là một tập hợp các hàm JavaScript để thao tác HTML và CSS
  • AngularJS - là một khung JavaScript giúp bạn tổ chức HTML và CSS
  • Node.js- là một trình chạy JavaScript ... giống như một trình duyệt trên máy chủ hoặc máy cục bộ của bạn, nhưng không có tất cả công cụ kết xuất trình duyệt và các tính năng bổ sung .. nó chỉ là thời gian chạy

Sự khác biệt chính của thư viện so với framework nói một cách đơn giản:
Framework áp đặt một kiến ​​trúc nhất định và mong đợi ứng dụng tuân theo mong đợi của nó
Thư viện là tập hợp các khối xây dựng cấp thấp thường cung cấp các hàm chi tiết nhằm giải quyết các vấn đề rất cụ thể (tức là jquery.post () chức năng)*


17

jQuery

jQuery là một thư viện làm được rất nhiều thứ cho bạn. Nó chứa rất nhiều chức năng tiện dụng, thường dùng để bạn không phải tự viết mã này. Đó là sự khác biệt giữa việc trở thành một thợ mộc trong thời kỳ đồ đá, hay có một loạt các công cụ điện theo ý của bạn.

AngularJS

AngularJS là một khuôn khổ được sử dụng để xây dựng giao diện người dùng đồ họa, front-end (GUI) cho các trang web và ứng dụng web tương tác. Nó tạo nên một sự kết hợp mạnh mẽ khi được sử dụng cùng với Node.js

Node.js

Node là một khuôn khổ được sử dụng để xây dựng các dịch vụ web back-end , chẳng hạn như các điểm cuối API REST lấy dữ liệu cho bạn trong nền. Bạn có thể kết nối các nút và phần tử GUI với các điểm cuối này bằng cách sử dụng AngularJS để xây dựng các ứng dụng web và báo cáo web phong phú, theo hướng dữ liệu. Là RESTful, các dịch vụ này chờ đợi cho đến khi giao diện người dùng gửi cho họ một yêu cầu (người dùng nhấp vào nút) và họ thực hiện một truy vấn cơ sở dữ liệu hoặc đọc một tệp và lấy lại một số dữ liệu, sau đó ứng dụng web có thể hiển thị cho người dùng.

Các khuôn khổ nói chung

Các khuôn khổ trong tương tự như thợ mộc trước đây giống như hợp đồng với một nhóm thợ xây chuyên nghiệp để làm công việc cho bạn. Bạn mô tả công việc đầy đủ chi tiết, họ tiếp nhận và thực sự hoàn thành công việc. Do đó, nhiệm vụ của bạn được giảm xuống việc đưa ra các đặc tả công việc bằng ngôn ngữ chính xác để đội ngũ xây dựng hiểu, thay vì tự mình thực hiện công việc.

AngularJS sẽ giống như nhóm thiết kế nội thất cùng với điện, và Node.js sẽ là mọi thứ khác. Đơn giản hóa quá mức? Có lẽ. Nhưng bạn đã yêu cầu một lời giải thích đơn giản.

Vì vậy, bạn có thể nghĩ AngularJS và Node.js đối lập nhau, nhưng chúng có thể được sử dụng cùng nhau trong cùng một ứng dụng hoặc dự án. Chúng thực hiện các mục đích khác nhau, nhưng cả hai đều sử dụng JavaScript (và jQuery ở một mức độ nào đó) để làm điều đó.


7
  • Khung : Điều này mô tả một cấu trúc nhất định về cách bạn nên trình bày mã của mình. Khá giống một mẫu mã, cùng với một số trình trợ giúp, trình xây dựng, v.v. để giải quyết / đơn giản hóa một vấn đề cụ thể hoặc đưa kiến ​​trúc của bạn vào "trật tự". Ví dụ, Backbone.js , RequiJS, Socket.IO . Một khuôn khổ đóng gói chức năng ứng dụng phổ biến, cho phép nhà phát triển tập trung vào các phần dành riêng cho ứng dụng của họ.

  • Thư viện : Là toàn bộ bộ công cụ trừu tượng hóa nhiều lớp khác nhau, như trình duyệt, mô hình DOM, v.v. Cũng là một bộ công cụ tốt, nó cung cấp rất nhiều công cụ và nội dung gọn gàng để làm việc, nói chung, đơn giản hóa trải nghiệm viết mã của bạn. Ví dụ như jQuery và MooTools .

Nhìn vào đây để biết thêm thông tin.


"Thư viện: Là toàn bộ bộ công cụ" - Lưu ý rằng nó có thể là một bộ công cụ rất nhỏ nếu mục đích của nó là xử lý dữ liệu ngày / giờ.
nnnnnn

7

Đây là lý do tại sao chúng ngày càng trở nên phổ biến hơn:

jQuery

  • Mã truy vấn tương đối ngắn hơn. Đôi khi chỉ năm dòng mã jQuery tương đương với 25 dòng mã JavaScript thông thường (ví dụ: tải một tệp dữ liệu bằng AJAX). Điều này có nghĩa là ít mã hơn và các tệp nhỏ hơn nhiều.
  • Thư viện lớn: jQuery cho phép bạn thực hiện nhiều hàm so với các thư viện JavaScript khác.
  • Làm việc siêu dễ dàng với Ajax: jQuery cho phép bạn phát triển các mẫu Ajax một cách dễ dàng hơn, Ajax cho phép một giao diện đẹp hơn, nơi các hành động có thể được thực hiện trên các trang mà không yêu cầu tải lại toàn bộ trang.

AngularJS

  • Liên kết dữ liệu hai chiều: Trong khi bạn có thể viết một sự kiện liên kết dữ liệu hai chiều đơn giản trong jQuery, các thư viện JavaScript MVC cung cấp cách kết nối mô hình với chế độ xem của bạn (sử dụng HTML) mang tính khai báo nhiều hơn.
  • Tuyệt vời cho SPA ( ứng dụng một trang ): Các thư viện như AngularJS, Aurelia, Ember.jsMeteor cung cấp tất cả hệ thống ống nước cho bạn thay vì viết tất cả trong jQuery

Node.js

  • Nó nhanh chóng: Ngoài việc thực thi JavaScript nhanh như chớp, điều kỳ diệu thực sự đằng sau Node.js là vòng lặp sự kiện. Vòng lặp sự kiện là một luồng duy nhất thực hiện tất cả các hoạt động I / O một cách không đồng bộ. Theo truyền thống, các hoạt động I / O chạy đồng bộ (chặn) hoặc không đồng bộ bằng cách tạo ra các luồng song song để thực hiện công việc.
  • Thời gian thực Made Easy: Nếu Node.js vượt trội ở nhiều kết nối đồng thời, thì có nghĩa là nó vượt trội với nhiều người dùng, các ứng dụng web thời gian thực như trò chuyện và trò chơi. Vòng lặp sự kiện của Node.js quan tâm đến yêu cầu nhiều người dùng.

2
"5 dòng mã jQuery tương đương với 25 dòng mã JavaScript thông thường" - Tùy thuộc vào những gì bạn đang cố gắng thực hiện. Đối với một số nhiệm vụ có sự khác biệt nhỏ nhất, đối với những nhiệm vụ khác thì có sự khác biệt lớn. "Điều này có nghĩa là các tệp nhỏ hơn và các trang web tải nhanh hơn." - Ngoại trừ việc mã jQuery do bạn lưu để viết cho chính mình, tất cả đều có trong tệp jQuery cũng phải được tải xuống trình duyệt. Vì vậy, tổng lượng mã có lẽ nhiều hơn.
nnnnnn

các tệp đó được tải trong khi tải tài liệu. vì thực tiễn tốt nhất là không sử dụng js cho đến khi DOM được tải. chúng không tạo ra sự khác biệt về tốc độ thực thi của các sự kiện nhấp chuột hoặc di chuột của bạn
ab29007

Trong câu trả lời của bạn, bạn nói "tải nhanh hơn". Điều đó không đúng, hoặc chắc chắn không đúng trên toàn cầu. Các tệp được tải "trong khi tải tài liệu" vẫn phải được tải xuống và (tùy thuộc vào trang) phải được tải xuống trước khi người dùng có thể tương tác có ý nghĩa với trang. (Lưu ý: Tôi không nói jQuery là một thứ xấu xa, chỉ là mô tả của bạn ít nhất là gây hiểu lầm.)
nnnnnn

ok .. nếu bạn nghĩ vậy, tôi sẽ xóa tải nhanh hơn
ab29007

Tôi có thể viết JQuery và javascript trong cùng một chương trình không
K Split X

6

Bạn sử dụng HTML, CSS và JavaScript để tạo các trang web tương tác.

jQuery là một công cụ được viết bằng JavaScript.

AngularJS là một công cụ được viết bằng JavaScript.

React là một công cụ được viết bằng JavaScript.

Những công cụ này giúp bạn quản lý các tương tác giữa HTML, CSS và JavaScript theo các quy tắc riêng của chúng. Một khi một công cụ trở nên thực sự lớn, nó có thể có tên như "library" hoặc "framework" tùy thuộc vào đặc điểm của nó.

Chúng tôi thường chạy JavaScript trong trình duyệt web. Nhưng kể từ vài năm trước, thứ gọi là Node.js này ra đời cho phép chúng ta dễ dàng chạy JavaScript bên ngoài trình duyệt. Tôi thích nghĩ về nó như là "một chương trình chạy JavaScript bên ngoài trình duyệt" (có nghĩa là ... không có HTML hoặc CSS để xem xét).

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.