Ở đây, jquery được đề cập trong danh mục khung: http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks
Jquery có phải là thư viện hay khuôn khổ javascript không?
Ở đây, jquery được đề cập trong danh mục khung: http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks
Jquery có phải là thư viện hay khuôn khổ javascript không?
Câu trả lời:
Thư viện. Theo trang chủ , và tôi đồng ý với.
Khung công tác là thứ thường bắt buộc một cách nhất định để triển khai một giải pháp, trong khi jQuery chỉ là một công cụ để giúp việc triển khai những gì bạn muốn làm dễ dàng hơn.
Chắc chắn, đó là một thư viện javascript. Nhưng về việc trở thành một khuôn khổ hay không, tôi chỉ nghĩ rằng nó không phải là một khuôn khổ. Hãy xem định nghĩa wikipedia về khung phần mềm :
Nó là một tập hợp các thư viện phần mềm cung cấp một giao diện lập trình ứng dụng xác định.
Và jQuery chỉ là một thư viện duy nhất. Sau đó nó nói:
Các khung chứa các tính năng phân biệt chính để phân biệt chúng với các thư viện bình thường:
- sự nghịch đảo của điều khiển - Trong một khuôn khổ, không giống như trong các thư viện hoặc các ứng dụng người dùng thông thường, luồng điều khiển của chương trình tổng thể không do người gọi ra lệnh mà là bởi khuôn khổ.
Vì vậy, tôi nghĩ nó không phải là một khuôn khổ.
Theo trang web anglejs
- thư viện - một tập hợp các chức năng hữu ích khi viết ứ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.- framework - 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. Khung phụ trách và nó gọi vào mã của bạn khi cần một ứng dụng cụ thể nào đó. Ví dụ: durandal, ember, v.v.
Framework và libarry không nhất thiết là các điều khoản loại trừ lẫn nhau. Framework thường là một libarry hoặc một tập hợp các thư viện.
Nói một cách chính xác, jQuery là một thư viện, nhưng ở một mức độ nào đó, nó đáp ứng định nghĩa của một khung phần mềm. Mặc dù nhiều người cho rằng jQuery không đáp ứng đủ định nghĩa của một khung phần mềm, nhưng thực tế là không có khung JavaScript nào khác đáp ứng đầy đủ định nghĩa của một khung.
Một trong những đặc điểm xác định của khung phần mềm là mã của nó được bảo vệ khỏi các sửa đổi. Trong JavaScript, đây rõ ràng không phải là trường hợp. Bất kỳ thư viện hoặc khuôn khổ nào có thể được gọi vào mã phía máy khách của bạn đều có thể sửa đổi được, mặc dù việc thay đổi chúng sẽ đi ngược lại các phương pháp hay nhất. Vì vậy, nếu có thể gọi Bootstrap hoặc AngularJS là một khung công tác, thì không có lý do gì mà jQuery cũng không thể được gọi là một khung công tác. Liên kết này chứa giải thích chi tiết hơn về cách jQuery đáp ứng các tiêu chí để được gọi là khung.
Có lẽ lời giải thích tốt nhất về lý do tại sao jQuery giống với một khuôn khổ hơn là một thư viện là thực tế là với tư cách là một nhà phát triển, bạn có thể chọn không sử dụng bất kỳ chức năng giống như khuôn khổ nào của nó. Ví dụ: bạn có thể trộn một câu lệnh jQuery đơn giản với một câu lệnh JavaScript chuẩn trên cùng một dòng. AngularJS và Bootstrap thường không cho phép bạn làm điều này. Do đó, câu trả lời chính xác cho dù jQuery có phải là một khuôn khổ hay không là "nó phụ thuộc vào việc bạn có chọn sử dụng nó như một khuôn khổ hay không".
Tôi đồng ý với tất cả các câu trả lời ở đây rằng bản thân jQuery thực sự là một thư viện, không phải một khuôn khổ. Như đã nêu rõ trong câu trả lời của Saeed, một trong những đặc điểm phân biệt chính là sự đảo ngược kiểm soát. Tuy nhiên, bạn có thể sử dụng chức năng của jQuery để tạo một khuôn khổ của riêng bạn.
Ví dụ: có những dự án được xây dựng dựa trên jQuery được định nghĩa là các khuôn khổ: jQuery Mobile: Một Khung Web Tối ưu hóa Cảm ứng , JavaScriptMVC và sammy.js để kể tên một số.
Ngoài ra còn có các thư viện khác được xây dựng trên jQuery, như jQuery UI
Một số trong đó có vẻ giống như ngữ nghĩa khi xác định thư viện là gì so với một khuôn khổ, nhưng những ví dụ đó giúp tôi hiểu rõ hơn.
Nếu chúng ta nói về Inversion of control, mà hầu hết mọi người trong chủ đề trên đều nói về thì jQuery là một KHUNG HÌNH.
Nó đã có IOC, ví dụ khi chúng ta viết hàm $ (document) .ready {} ... nó là vùng chứa gọi phương thức này và chúng ta chỉ cần đặt mã của mình bên trong dấu ngoặc nhọn. Chúng tôi không phải là Người gọi phương pháp này và do đó "Sự đảo ngược của Kiểm soát"
Theo cách này, jQuery là một KHUNG HÌNH.
ready()
.