So sánh khung công tác Js. Các thư viện, công cụ và framework JavaScript cần thiết mà bạn nên biết. Khung JavaScript là gì

Hiện tại có rất nhiều Khung Javascript có sẵn. Thật khó để biết nên sử dụng cái nào cho dự án nào. Bạn nghĩ framework nào là tốt nhất cho javascript? Vâng, nó phụ thuộc vào dự án của bạn. Bạn có thể xem danh sách các Khung Javascript tốt nhất bên dưới. Chúng tôi đã chọn dựa trên một số khía cạnh về sức mạnh cộng đồng, trọng lượng, v.v.

Vue.js là một khung JavaScript tiến bộ, có thể áp dụng dần dần để xây dựng giao diện người dùng trên web. Vue.js là một thư viện để xây dựng giao diện web tương tác. Nó cung cấp các thành phần phản ứng dữ liệu với API đơn giản và linh hoạt.

Aurelia là một khung máy khách JavaScript dành cho web, thiết bị di động và máy tính để bàn, tận dụng các quy ước đơn giản để trao quyền sáng tạo cho bạn.

Ember.js là một khung JavaScript giúp giảm đáng kể thời gian, công sức và tài nguyên cần thiết để xây dựng bất kỳ ứng dụng web nào. Nó tập trung vào việc giúp bạn, nhà phát triển, làm việc hiệu quả nhất có thể bằng cách thực hiện tất cả các nhiệm vụ phổ biến, lặp đi lặp lại nhưng cần thiết trong hầu hết các dự án phát triển web.

Một khung JavaScript khiêm tốn dành cho HTML mà bạn đã có.

NativeScript là một framework mã nguồn mở để xây dựng các ứng dụng di động gốc thực sự bằng JavaScript. Sử dụng các kỹ năng web, như Angular và Vue.js, FlexBox và CSS, đồng thời có được giao diện người dùng và hiệu suất gốc trên iOS và Android.

Rơle

Relay là một khung JavaScript để xây dựng các ứng dụng React dựa trên dữ liệu.

Một khung JavaScript có chức năng và phản ứng cho mã sạch hơn.

Babylon.js: một khung JavaScript hoàn chỉnh để xây dựng trò chơi 3D với HTML 5 và WebGL.

Chuyến bay là một khung JavaScript nhẹ, dựa trên thành phần, ánh xạ hành vi tới các nút DOM. Twitter sử dụng nó cho các ứng dụng web của họ.

Khung công tác Javascript MVC để phát triển web.

Một khung giao diện người dùng nhẹ để tạo các trang web đáp ứng, có hiệu suất và có thể mở rộng.

Giao diện người dùng Onsen là một thư viện gồm các thành phần giao diện người dùng giúp bạn tạo các ứng dụng web di động và kết hợp đẹp mắt cho cả Android và iOS bằng cách sử dụng Javascript.

Cylon.js là một khung JavaScript dành cho robot, máy tính vật lý và Internet of Things. Nó giúp việc điều khiển robot và thiết bị trở nên vô cùng dễ dàng.

trò đùa

Jest là khung thử nghiệm đơn vị JavaScript, được Facebook sử dụng để thử nghiệm các dịch vụ và ứng dụng React.

Khung JavaScript thời gian thực, tối giản được xây dựng cho NodeJS, React-Native và trình duyệt.

R

AVA

Bootbox.js là một thư viện JavaScript nhỏ cho phép bạn tạo các hộp thoại có lập trình bằng cách sử dụng các phương thức Bootstrap mà không phải lo lắng về việc tạo, quản lý hoặc xóa bất kỳ thành phần DOM hoặc trình xử lý sự kiện JS cần thiết nào.

Bộ tiện ích javascript phong phú không phụ thuộc vào khung phía máy chủ.

Một khung mixin JavaScript hướng theo khía cạnh tối giản.

Khung JavaScript để tạo ứng dụng web di động.

Highcharts JS là một khung biểu đồ JavaScript.

scripty2 là một khung JavaScript mã nguồn mở dành cho các giao diện người dùng dựa trên HTML nâng cao.

Crafty là một framework linh hoạt dành cho các trò chơi Javascript.

Modernizr là thư viện JavaScript phát hiện các tính năng HTML5 và CSS3 trong trình duyệt của người dùng.

Một khung JavaScript dựa trên thành phần tối thiểu.

Một cổng của ngôn ngữ trực quan hóa đang xử lý sang JavaScript.

Raphaël là một thư viện JavaScript nhỏ giúp đơn giản hóa công việc của bạn bằng đồ họa vector trên web.

RequireJS là một trình tải mô-đun và tệp JavaScript.

Đồ ăn vặt

Snack là một thư viện JavaScript nhỏ và đơn giản. Mặc dù lý tưởng cho các dự án nhỏ nhưng nó có đủ để xây dựng các ứng dụng web phức tạp, đa trình duyệt.

Zepto

Zepto là một thư viện JavaScript tối giản dành cho các trình duyệt hiện đại với API tương thích phần lớn với jQuery.

Jasmine là một khung phát triển dựa trên hành vi để kiểm tra mã JavaScript. Nó không phụ thuộc vào bất kỳ khung JavaScript nào khác. Nó không yêu cầu DOM. Và nó có cú pháp rõ ràng, rõ ràng để bạn có thể dễ dàng viết bài kiểm tra.

QUnit

QUnit là khung thử nghiệm đơn vị JavaScript mạnh mẽ, dễ sử dụng.

Mocha

Mocha là một khung kiểm tra JavaScript giàu tính năng chạy trên Node.js và trình duyệt, giúp việc kiểm tra không đồng bộ trở nên đơn giản và thú vị.

soma.js là một khung javascript có khả năng mở rộng được tạo ra để giúp các nhà phát triển viết các ứng dụng được kết hợp lỏng lẻo nhằm tăng khả năng mở rộng và khả năng bảo trì.

Khung mã hóa sáng tạo JavaScript đa nền tảng.

Jaggery là một khuôn khổ để viết các ứng dụng web và dịch vụ web tập trung vào HTTP cho tất cả các khía cạnh của ứng dụng: giao diện người dùng, giao tiếp, logic phía máy chủ và tính bền bỉ trong Javascript thuần túy.

Khung Javascript để xây dựng các ứng dụng tuyệt vời.

HTML rất tốt cho việc khai báo các tài liệu tĩnh, nhưng nó lại gặp khó khăn khi chúng ta cố gắng sử dụng nó để khai báo các chế độ xem động trong các ứng dụng web. AngularJS cho phép bạn mở rộng vốn từ vựng HTML cho ứng dụng của mình.

Khung ứng dụng JavaScript nhấn mạnh vào tính mô đun và đóng gói.

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

Kango

khung mở rộng đa trình duyệt có tên Kango. Mục đích của Kango là làm cho việc phát triển tiện ích mở rộng trình duyệt trở nên dễ dàng hơn, rẻ hơn và thú vị hơn. Với Kango, bạn có thể tạo tiện ích mở rộng cho tất cả các trình duyệt chính chỉ trong vài phút chỉ bằng JavaScript.

Cappuccino là một framework giúp bạn dễ dàng tạo các ứng dụng web nâng cao. Chỉ với một vài dòng mã, bạn có thể xây dựng một ứng dụng với tính năng hoàn tác và làm lại hoàn toàn, các chế độ xem bảng thực sự tuyệt vời, kéo và thả cũng như mọi giao diện và hành vi giao diện người dùng hiện đại mà bạn có thể mong đợi trên máy tính để bàn.

ZK

ZK là khung Java mã nguồn mở tốt nhất để xây dựng các ứng dụng di động và web dành cho doanh nghiệp.

qooxdoo là một khung JavaScript phổ quát với một tập hợp các thành phần riêng lẻ và chuỗi công cụ mạnh mẽ.

Durandal là một khung máy khách đa nền tảng, đa thiết bị được viết bằng JavaScript và được thiết kế để giúp các Ứng dụng Trang Đơn (SPA) dễ dàng tạo và duy trì.

SproutCore là một framework mã nguồn mở để xây dựng trải nghiệm người dùng sáng tạo, nhanh chóng trên web.

Wakanda là một khung ứng dụng web nguồn mở để phát triển các ứng dụng web và di động bằng JavaScript.

Webix

Webix là thư viện tiện ích giao diện người dùng JavaScript đa trình duyệt. Xây dựng các ứng dụng web dành cho thiết bị di động và máy tính để bàn có tốc độ nhanh chạy trên tất cả các thiết bị cảm ứng có khung HTML5.

Phản ứng

Thư viện JavaScript để xây dựng giao diện người dùng.

Sammy

Sammy là một khung javascript nhỏ được xây dựng dựa trên jQuery, Đó là Javascript có sự kiện RESTful.

Các nhà phát triển ngày nay có rất nhiều lựa chọn khi chọn khung MV* để cấu trúc và tổ chức các ứng dụng web JavaScript của họ.

Knockout là thư viện JavaScript MVVM (một biến thể hiện đại của MVC) giúp tạo giao diện người dùng phong phú, giống như máy tính để bàn bằng JavaScript và HTML dễ dàng hơn. Nó sử dụng trình quan sát để làm cho giao diện người dùng của bạn tự động đồng bộ hóa với mô hình dữ liệu cơ bản, cùng với một bộ liên kết khai báo mạnh mẽ và có thể mở rộng để cho phép phát triển hiệu quả.

CorMVC là một khung công tác Model-View-Controller (MVC) được hỗ trợ bởi jQuery, có thể hỗ trợ phát triển các ứng dụng jQuery một trang. Nó phát triển từ bài thuyết trình gần đây của tôi, Xây dựng các ứng dụng một trang bằng jQuery và ColdFusion và sẽ tiếp tục phát triển khi tôi suy nghĩ sâu hơn về loại kiến ​​trúc ứng dụng này.

Polymer cho phép bạn xây dựng các phần tử được đóng gói, có thể sử dụng lại, hoạt động giống như các phần tử HTML để sử dụng trong việc xây dựng các ứng dụng web.

Matreshka là một khung JavaScript phía máy khách nhỏ và mạnh mẽ cho phép bạn xây dựng các ứng dụng một trang đơn giản nhất có thể.

Khung ứng dụng thời gian thực (máy chủ Node.JS).

Meteor là một nền tảng nguồn mở hoàn chỉnh để xây dựng các ứng dụng web và thiết bị di động bằng JavaScript thuần túy.

Sencha Ext JS là khung JavaScript MVC/MVVM toàn diện nhất để xây dựng các ứng dụng web đa nền tảng giàu tính năng. Ext JS tận dụng các tính năng HTML5 trên các trình duyệt hiện đại trong khi vẫn duy trì khả năng tương thích và chức năng cho các trình duyệt cũ.

Khung nổi tiếng là một khung JavaScript mới để tạo các ứng dụng và tiện ích giao diện người dùng có thể tái sử dụng, có thể tổng hợp và hoán đổi cho nhau. Nó cân bằng giữa khai báo với mệnh lệnh và chức năng với trạng thái, đồng thời được xây dựng dựa trên Công cụ nổi tiếng.

Opa Framework mã nguồn mở dành cho JavaScript giúp việc phát triển web trở nên nhanh chóng và an toàn.

Vanilla JS là một framework đa nền tảng, nhanh, nhẹ để xây dựng các ứng dụng JavaScript mạnh mẽ và đáng kinh ngạc.

NGHĨA LÀ

MEAN là một framework để bắt đầu dễ dàng với các ứng dụng dựa trên MongoDB, Node.js, Express và AngularJS. Nó được thiết kế để cung cấp cho bạn một cách nhanh chóng và có tổ chức để bắt đầu phát triển các ứng dụng web dựa trên MEAN với các mô-đun hữu ích như Mongoose và Passport được đóng gói và định cấu hình sẵn.

GWT được nhiều sản phẩm tại Google sử dụng, bao gồm Google AdWords và Google Wallet. Nó là nguồn mở, hoàn toàn miễn phí và được hàng nghìn nhà phát triển nhiệt tình trên khắp thế giới sử dụng.

Ample SDK là Khung GUI JavaScript đa trình duyệt dựa trên tiêu chuẩn để xây dựng các Ứng dụng Internet phong phú phía máy khách. Nó sử dụng các công nghệ XML (chẳng hạn như XUL, SVG hoặc HTML5) để bố trí giao diện người dùng, CSS cho kiểu giao diện người dùng và JavaScript với các API giống DOM3 hoặc jQuery cho logic ứng dụng.

Flatiron là một framework có khả năng thích ứng để xây dựng các ứng dụng web hiện đại. Nó được xây dựng từ đầu để sử dụng với JavaScript và Node.js.

P

P là một khung nhỏ được sử dụng để tạo mạng từ trình duyệt đến trình duyệt (trái ngược với chỉ kết nối).

ScalApp là một khung JavaScript nhỏ dành cho Ứng dụng một trang / Ứng dụng một trang có thể mở rộng và duy trì. Khung này cho phép bạn dễ dàng tạo các ứng dụng web phức tạp.

MooTools là tập hợp các tiện ích JavaScript được thiết kế dành cho nhà phát triển JavaScript từ trung cấp đến nâng cao. Nó cho phép bạn viết mã mạnh mẽ và linh hoạt với các API trang nhã, được ghi chép đầy đủ và mạch lạc.

Minified.js là thư viện JavaScript phía máy khách vừa mạnh mẽ vừa nhỏ gọn. Nó cung cấp các tính năng giống như jQuery (thao tác DOM, hoạt ảnh, sự kiện, yêu cầu HTTP) và các hàm tiện ích (bộ sưu tập, định dạng ngày&số, số học ngày, mẫu) với một API nhất quán, duy nhất.

Javelin là một thư viện Javascript giao diện người dùng được phát triển tại Facebook. Nó nhấn mạnh tính nghiêm ngặt và khả năng mở rộng để cố gắng giải quyết, ngăn chặn hoặc giảm thiểu một số thách thức mà chúng tôi gặp phải khi Facebook phát triển. Javelin hiện đang được Facebook Mobile và Phabricator sử dụng.

RightJS là một khung JavaScript nhỏ gọn để phát triển các ứng dụng web trên nhiều trình duyệt.

Một nền tảng nhỏ để tạo các thành phần phản ứng với phép nội suy, liên kết dữ liệu và plugin. Nó đơn giản, linh hoạt và dễ mở rộng.

Sails là khung MVC phổ biến nhất cho Node.js.

midori là một khung JavaScript siêu nhẹ giúp hoàn thành công việc mà không gây cản trở cho bạn.

Microframework Javascript MVC chỉ hoạt động vừa đủ.

Thư viện JavaScript trên nhiều trình duyệt để xây dựng các ứng dụng Web và Di động phong phú.

Bộ công cụ JavaScript giúp bạn tiết kiệm thời gian và mở rộng quy mô trong quá trình phát triển của mình. Cung cấp mọi thứ bạn cần để xây dựng một ứng dụng Web. Các tiện ích ngôn ngữ, thành phần giao diện người dùng, v.v., tất cả ở cùng một nơi, được thiết kế để hoạt động cùng nhau một cách hoàn hảo.

MochiKit là một bộ thư viện JavaScript được kiểm tra kỹ lưỡng và được ghi chép kỹ càng, sẽ giúp bạn hoàn thành công việc một cách nhanh chóng. Chúng tôi đã lấy tất cả những ý tưởng hay mà chúng tôi có thể tìm thấy từ Python, Objective-C, v.v. trải nghiệm và điều chỉnh nó cho phù hợp với thế giới JavaScript điên rồ.

Tiếng vọng

Echo là một nền tảng để xây dựng các ứng dụng dựa trên web tiếp cận khả năng của những khách hàng giàu có. Các ứng dụng được phát triển bằng API hướng thành phần và hướng sự kiện, loại bỏ nhu cầu xử lý tính chất “dựa trên trang” của trình duyệt. Đối với nhà phát triển, Echo hoạt động giống như một bộ công cụ giao diện người dùng.

Mọi thứ để xây dựng ứng dụng web và thiết bị di động bằng HTML5 và JavaScript.

Kiến trúc Flux truyền thống được xây dựng bằng cấu trúc dữ liệu ImmutableJS.

JWt là một thư viện Java để phát triển các ứng dụng web.

PureMVC là một framework nhẹ để tạo các ứng dụng dựa trên khái niệm Model, View và Controller cổ điển.

D3.js

D3.js là thư viện JavaScript để thao tác tài liệu dựa trên dữ liệu. D3 giúp bạn làm cho dữ liệu trở nên sống động bằng HTML, SVG và CSS. D3 nhấn mạnh các tiêu chuẩn web và kết hợp các thành phần trực quan hóa mạnh mẽ với cách tiếp cận dựa trên dữ liệu để thao tác DOM, mang lại bạnđầy đủ khả năng của các trình duyệt hiện đại mà không cần ràng buộc mình vào một khuôn khổ độc quyền.

Handlebars.js là một phần mở rộng cho ngôn ngữ tạo khuôn mẫu Mustache do Chris Wanstrath tạo ra. Handlebars.js và Mustache đều là những ngôn ngữ tạo khuôn mẫu hợp lý giúp giữ cho chế độ xem và mã được tách biệt như tất cả chúng ta đều biết.

Một bản tóm tắt dễ dàng để triển khai Thư viện JavaScript của riêng bạn như jQuery, Zepto, Prototype, v.v.

Rialto (Bộ công cụ ứng dụng Internet phong phú) là thư viện tiện ích javascript trên nhiều trình duyệt dựa trên ajax. Bởi vì nó là bất khả tri về công nghệ nên nó có thể được gói gọn trong các thành phần đồ họa JSP, JSF, .Net, Python hoặc PHP.

Một khung công tác không theo khuôn khổ, có tính mô-đun cao, được liên kết lỏng lẻo để xây dựng các ứng dụng JavaScript nâng cao.

Dozer là một hệ thống phát triển nhanh các dịch vụ để hỗ trợ các ứng dụng front-end.

AmplifyJS là một tập hợp các thành phần được thiết kế để giải quyết các vấn đề phổ biến về ứng dụng web bằng API đơn giản.

Noder.io cung cấp lõi nhẹ và linh hoạt để tạo API có thể mở rộng của lib, mô-đun, ứng dụng hoặc khung. Noder.io được lấy cảm hứng (trong số những thứ khác) bởi Angular và Pimple.

abaaso là một khung ứng dụng JavaScript RESTful cấp Doanh nghiệp hiện đại, nhẹ.

Cơ sở dự án để xây dựng các ứng dụng JavaScript hiện đại.

SharepointPlus ($SP) là API JavaScript dành cho Sharepoint. Thư viện này cung cấp một số tính năng mở rộng cho SharePoint hoàn toàn ở phía máy khách (không yêu cầu cài đặt máy chủ). $SP sẽ đơn giản hóa các tương tác của bạn với Dịch vụ Web Sharepoint và sẽ giúp bạn xử lý các Biểu mẫu Danh sách.

Marionette là một thư viện ứng dụng tổng hợp dành cho Backbone.js nhằm mục đích đơn giản hóa việc xây dựng các ứng dụng JavaScript quy mô lớn. Nó là một tập hợp các mẫu thiết kế và triển khai phổ biến được tìm thấy trong các ứng dụng.

Cuộc náo loạn

Riot mang thẻ tùy chỉnh đến tất cả các trình duyệt, bao gồm cả IE8. Hãy nghĩ đến React + Polymer nhưng với cú pháp thú vị và thời gian học tập ngắn.

pager.js là một thư viện JavaScript dựa trên KnockoutJS và jQuery, cung cấp khả năng tạo các ứng dụng trang đơn theo kiểu khai báo.

CanJS

CanJS là một thư viện JavaScript giúp việc phát triển các ứng dụng phức tạp trở nên đơn giản và nhanh chóng. Cấu trúc ứng dụng của bạn dễ học, nhỏ gọn và đơn giản nhưng có các tính năng hiện đại như thẻ tùy chỉnh và liên kết 2 chiều. Tạo ứng dụng rất dễ dàng và có thể bảo trì.

Giải pháp tạo khuôn mẫu + liên kết dữ liệu nhẹ và mạnh mẽ để xây dựng các ứng dụng web hiện đại.

Epoxy là thư viện liên kết dữ liệu thanh lịch và có thể mở rộng dành cho Backbone.js.

OpenUI5 là thư viện UI JavaScript nguồn mở, được SAP duy trì và có sẵn theo giấy phép Apache 2.0. OpenUI5 cho phép bạn xây dựng các ứng dụng web sẵn sàng cho doanh nghiệp, đáp ứng với mọi thiết bị, chạy trên hầu hết mọi trình duyệt bạn chọn.

script.aculo.us cung cấp cho bạn các thư viện JavaScript giao diện người dùng đa trình duyệt, dễ sử dụng để giúp các trang web và ứng dụng web của bạn hoạt động tốt.

YUI là thư viện JavaScript và CSS mã nguồn mở, miễn phí để xây dựng các ứng dụng web có tính tương tác phong phú.

SmartClient kết hợp tập hợp các thành phần giao diện người dùng đa trình duyệt phong phú nhất trong ngành với khung máy chủ Java để cung cấp giải pháp toàn diện để xây dựng các ứng dụng web kinh doanh.

Backbone.js cung cấp cấu trúc cho các ứng dụng web bằng cách cung cấp các mô hình với các sự kiện tùy chỉnh và ràng buộc khóa-giá trị, các bộ sưu tập với API phong phú gồm các hàm có thể đếm được, các dạng xem với khả năng xử lý sự kiện khai báo và kết nối tất cả với API hiện có của bạn qua giao diện RESTful JSON.

Gạch

Brick là tập hợp các thành phần giao diện người dùng được thiết kế để xây dựng giao diện người dùng ứng dụng web dễ dàng và nhanh chóng. Các thành phần Brick được xây dựng bằng tiêu chuẩn Thành phần Web để cho phép các nhà phát triển mô tả giao diện người dùng của ứng dụng bằng cú pháp HTML mà họ đã biết.

Xương sống

Spine là một thư viện MVC nhẹ để xây dựng các ứng dụng web JavaScript. Spine cung cấp cho bạn cấu trúc và sau đó thực hiện theo cách của bạn, cho phép bạn tập trung vào những điều thú vị: xây dựng các ứng dụng web tuyệt vời.

UIZE được phát âm là “đôi mắt của bạn” và là một khung OOP JavaScript MIỄN PHÍ, mạnh mẽ, mã nguồn mở dành cho các trình duyệt, NodeJS và các vị trí JavaScript khác.

JavaScriptMVC là một framework mã nguồn mở chứa đựng những ý tưởng hay nhất trong quá trình phát triển jQuery.

Agility.js là một thư viện MVC dành cho Javascript cho phép bạn viết mã trình duyệt có thể bảo trì và sử dụng lại mà không cần tốn chi phí dài dòng hoặc chi phí cơ sở hạ tầng như trong các thư viện MVC khác.

Underscore là một thư viện JavaScript cung cấp rất nhiều công cụ trợ giúp lập trình chức năng hữu ích mà không cần mở rộng bất kỳ đối tượng tích hợp nào.

Radian là một framework AngularJS có khả năng mở rộng, hoàn hảo cho các dự án của nhiều nhà phát triển.

Ractive ban đầu được tạo ra tại theguardian.com để sản xuất các ứng dụng tin tức. Một ứng dụng tin tức điển hình có tính tương tác cao, kết hợp HTML và SVG và được phát triển dưới áp lực thời hạn cực kỳ cao.

Geddy

Khung Web MVC ban đầu dành cho Node - một cách đơn giản, có cấu trúc để tạo các ứng dụng javascript xếp chồng đầy đủ.

Đầu máy là một khung web dành cho Node.js. Đầu máy hỗ trợ các mẫu MVC, các tuyến RESTful và quy ước về cấu hình, đồng thời tích hợp hoàn hảo với bất kỳ cơ sở dữ liệu và công cụ mẫu nào.

MontageJS là một khung HTML5 mã nguồn mở, trang nhã được duy trì bởi Montage Studio, cạnh tranh với các SDK gốc nhưng lại dễ học hơn.

Chaplin là kiến ​​trúc dành cho các ứng dụng JavaScript sử dụng thư viện Backbone.js. Chaplin giải quyết các hạn chế của Backbone bằng cách cung cấp cấu trúc nhẹ và linh hoạt với các mẫu thiết kế đã được chứng minh rõ ràng và các phương pháp hay nhất.

Serenade.js là một framework phía máy khách được xây dựng trên mẫu MVC. Việc tạo các ứng dụng phong phú phía máy khách trở nên đơn giản bằng cách giúp bạn không phải cập nhật dữ liệu của mình cho DOM thông qua các liên kết dữ liệu mạnh mẽ.

Nguyên mẫu loại bỏ sự phức tạp của việc lập trình web phía máy khách. Được xây dựng để giải quyết các vấn đề trong thế giới thực, nó bổ sung các phần mở rộng hữu ích cho môi trường tập lệnh của trình duyệt và cung cấp các API tinh tế xung quanh các giao diện vụng về của Ajax và Mô hình đối tượng tài liệu.

pyjs

pyjs là Nền tảng phát triển ứng dụng Internet phong phú (RIA) cho cả Web và Máy tính để bàn. Với pyjs, bạn có thể viết các ứng dụng web chạy JavaScript hoàn toàn bằng Python.

jQWidgets cung cấp giải pháp toàn diện để xây dựng các trang web và ứng dụng di động chuyên nghiệp. Nó được xây dựng hoàn toàn trên các tiêu chuẩn và công nghệ mở như HTML5, CSS, JavaScript và jQuery.

Rico là một khung JavaScript mã nguồn mở được sử dụng để tạo các ứng dụng web phong phú, có tính tương tác cao. Rico dựa trên Khung Javascript nguyên mẫu và được phát hành theo Giấy phép Apache.

eyeballs.js là một thư viện javascript mỏng được thiết kế để nằm trên một khung javascript, chẳng hạn như jQuery hoặc Prototype.

sô-cô-la

Một khung web Javascript tuyệt vời được sản xuất tại Bỉ!

Khung công tác Junction mã nguồn mở là một khung công tác web MVC đồng bộ hóa cấu hình quy ước cho JavaScript.

KineticJS là Thư viện Canvas HTML5 nhanh, mạnh mẽ và không còn được duy trì nữa. Phiên bản ổn định cuối cùng là v5.1.0 và nó khá chắc chắn.

Kết xuất

Rendr là một thư viện nhỏ cho phép bạn chạy các ứng dụng Backbone.js một cách liền mạch trên cả máy khách và máy chủ. Cho phép máy chủ web của bạn phân phát các trang HTML được định dạng đầy đủ tới bất kỳ liên kết sâu nào trong ứng dụng của bạn, trong khi vẫn giữ được cảm giác thú vị của ứng dụng MVC phía máy khách Backbone.js truyền thống.

TerrificJS là một đoạn mã gọn gàng, thông minh cho phép bạn mô-đun hóa mã giao diện người dùng của mình bằng cách chỉ dựa vào các quy ước đặt tên.

nguyên tử

Atom là một khung JavaScript nhỏ gọn được định hướng trên các trình duyệt hiện đại, cho phép hỗ trợ khá nhiều danh sách tính năng mà không cần giữ nhiều hành trình cần thiết để triển khai chúng trong các trình duyệt cũ.

Ngày nay, có rất nhiều framework và thư viện có sẵn trong quá trình phát triển front-end. Một số trong số đó là tốt, một số thì không. Thường thì chúng ta chỉ thích một nguyên tắc nhất định hoặc một cú pháp nhất định. Sự thật là không có công cụ phổ quát nào cả. Bài viết này nói về một framework tương lai - một framework chưa tồn tại. Tôi đã tóm tắt những ưu và nhược điểm của một số khung JavaScript phổ biến và dám mơ về giải pháp hoàn hảo.

Trừu tượng là nguy hiểm

Tất cả chúng ta đều thích công cụ đơn giản. Sự phức tạp giết chết. Nó làm cho cuộc sống của chúng ta khó khăn hơn và đường cong học tập của chúng ta dốc hơn. Lập trình viên cần biết mọi thứ hoạt động như thế nào. Ngược lại họ cảm thấy không an toàn. Nếu chúng ta đang làm việc với một hệ thống phức tạp, sẽ có một khoảng cách lớn giữa “Tôi sử dụng cái này” và “Tôi biết nó hoạt động như thế nào”. Ví dụ: mã như thế này ẩn giấu sự phức tạp:

Var page = Framework.createPage(( "type": "home", "visible": true ));

Giả sử đây là một khuôn khổ thực sự. Dưới mui xe, createPage tạo một lớp mới trưng bày tải mẫu từ home.html. Tùy thuộc vào giá trị của tham số hiển thị mà chúng ta chèn (hoặc không) phần tử DOM đã tạo vào cây. Bây giờ hãy tưởng tượng bạn ở vị trí của nhà phát triển. Chúng tôi đọc trong tài liệu mà phương pháp này tạo ra trang mới với một mẫu nhất định. Chúng tôi không biết chi tiết cụ thể vì đó là một sự trừu tượng.

Một số framework ngày nay thậm chí không chỉ có một mà có nhiều lớp trừu tượng. Đôi khi, để sử dụng một framework một cách chính xác, chúng ta cần biết chi tiết. Nói chung, tính trừu tượng là một công cụ mạnh mẽ; nó là một lớp bao bọc cho chức năng. Nó gói gọn các triển khai cụ thể. Nhưng sự trừu tượng nên được sử dụng một cách thận trọng, nếu không nó có thể dẫn đến những hành động không thể theo dõi được.

Điều gì sẽ xảy ra nếu chúng ta viết lại ví dụ trên như thế này:

Trang Var = Framework.createPage(); trang .loadTemplate("home.html") .appendToDOM();

Bây giờ nhà phát triển đã biết chuyện gì đang xảy ra. Việc tạo và chèn mẫu vào cây hiện được thực hiện bằng các phương pháp API khác nhau. Vì vậy, lập trình viên có thể thực hiện điều gì đó giữa các cuộc gọi này và kiểm soát được tình hình.

Hàm ViewModel(first, Last) ( this.firstName = ko.observable(first); this.lastName = ko.observable(last); ) ko.applyBindings(new ViewModel("Planet", "Earth"))

Chúng ta khai báo mô hình và tự khởi tạo nó. Nhưng trong AngularJS thì hơi khác một chút:

Hàm TodoCtrl($scope) ( $scope.todos = [ ("text": "learn góc cạnh", "done": true ), ("text": "xây dựng một ứng dụng góc cạnh", "done": false ) ]; )

Một lần nữa, chúng ta khai báo lớp của mình nhưng không chạy nó. Chúng tôi chỉ nói rằng đây là bộ điều khiển của chúng tôi và khung công tác quyết định phải làm gì với nó. Chúng ta có thể bối rối vì điều này vì chúng ta đã đánh mất những điểm chính - những điểm chính mà chúng ta cần để vẽ sơ đồ về cách hoạt động của ứng dụng.

Làm việc với DOM

Dù làm gì, chúng ta cũng cần tương tác với DOM. Cách chúng tôi thực hiện việc này rất quan trọng, thông thường mọi thay đổi đối với các nút cây trên trang đều đòi hỏi phải thay đổi kích thước hoặc vẽ lại và đây có thể là những thao tác rất tốn kém. Hãy lấy lớp này làm ví dụ:

Var Framework = ( "el": null, "setElement": function(el) ( this.el = el; return this; ), "update": function(list) ( var str = "

    "; với (var i = 0; i< list.length; i++) { var li = document.createElement("li"); li.textContent = list[i]; str += li.outerHTML; } str += "
"; this.el.innerHTML = str; trả lại cái này; ) )

Khung nhỏ này tạo ra một danh sách không có thứ tự với dữ liệu cần thiết. Chúng tôi chuyển phần tử DOM nơi danh sách sẽ được đặt và gọi chức năng cập nhật, hiển thị dữ liệu trên màn hình.

Framework .setElement(document.querySelector(".content")) .update(["JavaScript", "is", "awesome"]);

Đây là những gì chúng tôi đã rút ra được:

Để lam sang tỏ Mặt yếu Theo phương pháp này, chúng tôi sẽ thêm một liên kết đến trang và gán trình xử lý sự kiện nhấp chuột cho nó. Hàm sẽ gọi lại phương thức cập nhật, nhưng với các thành phần danh sách khác nhau:

Document.querySelector("a").addEventListener("click", function() ( Framework.update(["Web", "is", "awesome"]); ));

Chúng ta đang truyền gần như cùng một dữ liệu, chỉ có phần tử đầu tiên của mảng là thay đổi. Nhưng do chúng ta đang sử dụng InternalHTML nên việc vẽ lại sẽ xảy ra sau mỗi lần nhấp chuột. Trình duyệt không biết rằng chúng ta chỉ cần thay đổi dòng đầu tiên. Nó vẽ lại toàn bộ danh sách. Hãy khởi chạy DevTools của trình duyệt Opera và bắt đầu lập hồ sơ. Hãy xem ảnh GIF động này để biết điều gì đang diễn ra:


Xin lưu ý rằng sau mỗi lần nhấp chuột, toàn bộ nội dung sẽ được vẽ lại. Đây là một vấn đề, đặc biệt nếu kỹ thuật này được sử dụng ở nhiều nơi trên trang.

Tốt hơn nhiều trong việc ghi nhớ các yếu tố được tạo

  • và chỉ thay đổi nội dung của chúng. Vì vậy, chúng tôi không thay đổi toàn bộ danh sách mà chỉ thay đổi các nút con của nó. Thay đổi đầu tiên chúng ta có thể thực hiện là trong setElement:

    SetElement: function(el) ( this.list = document.createElement("ul"); el.appendChild(this.list); trả lại cái này; )

    Bây giờ chúng ta không còn phải lưu trữ một tham chiếu đến phần tử vùng chứa nữa. Chỉ cần tạo một phần tử là đủ

      và thêm nó một lần vào cây.

      Logic cải thiện hiệu suất nằm bên trong phương thức cập nhật:

      "cập nhật": hàm(danh sách) ( for (var i = 0; i< list.length; i++) { if (!this.rows[i]) { var row = document.createElement("LI"); row.textContent = list[i]; this.rows[i] = row; this.list.appendChild(row); } else if (this.rows[i].textContent !== list[i]) { this.rows[i].textContent = list[i]; } } if (list.length < this.rows.length) { for (var i = list.length; i < this.rows.length; i++) { if (this.rows[i] !== false) { this.list.removeChild(this.rows[i]); this.rows[i] = false; } } } return this; }

      Vòng lặp for đầu tiên lặp qua tất cả các dòng đã truyền và tạo các phần tử nếu cần thiết

    • . Tham chiếu đến các phần tử này được lưu trữ trong mảng this.rows. Và nếu đã có một phần tử ở một chỉ mục nhất định thì khung chỉ cập nhật thuộc tính textContent của nó nếu có thể. Vòng lặp thứ hai loại bỏ các phần tử nếu kích thước của mảng lớn hơn số chuỗi được truyền.

      Đây là kết quả:


      Trình duyệt chỉ vẽ lại phần đã thay đổi.

      Tin vui là các framework như React đã hoạt động chính xác với DOM. Các trình duyệt ngày càng thông minh hơn và sử dụng các thủ thuật để hiển thị lại ít nhất có thể. Tuy nhiên, tốt hơn hết bạn nên ghi nhớ điều này và kiểm tra xem khuôn khổ bạn chọn hoạt động như thế nào.

      Tôi hy vọng rằng trong tương lai gần, chúng ta sẽ không còn phải suy nghĩ về những điều như vậy nữa và các framework sẽ tự xử lý việc đó.

      Xử lý sự kiện DOM

      Các ứng dụng JavaScript thường tương tác với người dùng thông qua các sự kiện DOM. Các phần tử trên trang gửi sự kiện và mã của chúng tôi xử lý chúng. Đây là một đoạn mã trong Backbone.js thực hiện một hành động nếu người dùng tương tác với trang:

      Var Navigation = Backbone.View.extend(( "events": ("click .header.menu": "toggleMenu" ), "toggleMenu": function() ( // ... ) ));

      Vì vậy, cần có một phần tử tương ứng với selector.header.menu và khi người dùng nhấp vào nó, chúng ta sẽ hiển thị hoặc ẩn menu. Vấn đề với cách tiếp cận này là chúng ta đang ràng buộc đối tượng JavaScript với một phần tử DOM cụ thể. Nếu chúng tôi muốn chỉnh sửa đánh dấu và thay thế .menu bằng .main-menu, chúng tôi cũng sẽ phải chỉnh sửa JavaScript. Tôi tin rằng bộ điều khiển phải độc lập và không nên kết hợp chặt chẽ với DOM.

      Bằng cách xác định các hàm, chúng ta ủy quyền các nhiệm vụ cho một lớp JavaScript. Nếu các tác vụ này là trình xử lý sự kiện DOM thì việc tạo chúng từ HTML là điều hợp lý.

      Tôi thích cách AngularJS xử lý các sự kiện.

      nhấp vào đây

      go là một chức năng được đăng ký trong bộ điều khiển của chúng tôi. Nếu tuân theo nguyên tắc này, chúng ta không cần phải nghĩ đến bộ chọn DOM. Chúng tôi chỉ cần áp dụng hành vi trực tiếp cho các nút HTML. Cách tiếp cận này tốt vì nó giúp bạn tránh khỏi việc nhàm chán với DOM.

      Nói chung, tôi sẽ rất vui nếu loại logic này có trong HTML. Thật thú vị, chúng tôi đã dành rất nhiều thời gian để thuyết phục các nhà phát triển tách nội dung (HTML) và hành vi (JavaScript), chúng tôi đã dạy họ cách nhúng trực tiếp các kiểu và tập lệnh vào HTML. Nhưng bây giờ tôi thấy rằng nó có thể giúp chúng tôi tiết kiệm thời gian và làm cho các thành phần của chúng tôi linh hoạt hơn. Tất nhiên, tôi không có ý gì như thế này:

      văn bản biểu ngữ

      Tôi đang nói về các thuộc tính trực quan kiểm soát hành vi của một phần tử. Ví dụ:

      Điều này không giống như lập trình JavaScript bằng HTML mà giống như việc thiết lập cấu hình.

      Quản lý phụ thuộc

      Quản lý sự phụ thuộc là một nhiệm vụ quan trọng trong quá trình phát triển. Chúng ta thường phụ thuộc vào các chức năng, mô-đun hoặc thư viện bên ngoài. Trên thực tế, chúng ta luôn tạo ra sự phụ thuộc. Chúng tôi không viết mọi thứ theo một phương pháp. Chúng tôi chia nhiệm vụ của ứng dụng thành các chức năng khác nhau rồi kết nối chúng. Lý tưởng nhất là chúng ta muốn gói gọn logic thành các mô-đun hoạt động giống như hộp đen. Họ chỉ biết những chi tiết liên quan đến công việc của họ và không biết gì khác.

      RequireJS là một trong những công cụ giải quyết phụ thuộc phổ biến. Ý tưởng là mã được gói trong một bao đóng, trong đó các mô-đun cần thiết được chuyển vào:

      Require(["ajax", "router"], function(ajax, router) ( // … ));

      Hàm ví dụ này yêu cầu hai mô-đun: ajax và bộ định tuyến. Phương thức require kỳ diệu đọc mảng được truyền và gọi hàm của chúng ta với các đối số được yêu cầu. Định nghĩa của bộ định tuyến trông giống như thế này:

      // router.js định nghĩa(["jquery"], function($) ( return ("apiMethod": function() ( // ... ) ) ));

      Lưu ý rằng có một phần phụ thuộc khác - jQuery. Một chi tiết quan trọng khác: chúng tôi phải trả về API công khai của mô-đun của mình. Nếu không, mã yêu cầu mô-đun của chúng tôi sẽ không thể truy cập vào chức năng đó.

      AngularJS tiến xa hơn một chút và cung cấp cho chúng ta một thứ gọi là nhà máy. Chúng tôi đăng ký các phần phụ thuộc của mình ở đó và chúng trở nên có sẵn trong bộ điều khiển một cách kỳ diệu. Ví dụ:

      MyModule.factory("helloer", function($window) ( return ("hello": function(text) ( $window.alert(text); ) ); )); function MyController($scope, lời chào) ( $scope.sayHello = function() ( helloer.greet("Hello World"); )

      Nói chung, cách tiếp cận này làm cho công việc dễ dàng hơn. Chúng ta không cần sử dụng các hàm như require để có được phần phụ thuộc. Tất cả những gì được yêu cầu là gõ các từ chính xác vào danh sách đối số.

      Được rồi, cả hai phương pháp chèn phần phụ thuộc này đều hoạt động nhưng mỗi phương pháp đều yêu cầu một kiểu mã hóa khác nhau. Trong tương lai, tôi muốn thấy các khuôn khổ loại bỏ hạn chế này. Sẽ thanh lịch hơn nhiều nếu sử dụng siêu dữ liệu khi tạo biến. Bây giờ ngôn ngữ không thể thực hiện được điều này. Nhưng sẽ thật tuyệt nếu bạn có thể làm điều này:

      Bộ định tuyến Var:;

      Nếu phần phụ thuộc nằm bên cạnh định nghĩa biến thì chúng ta có thể chắc chắn rằng phần phụ thuộc này chỉ được thêm vào nếu cần thiết. Ví dụ: RequireJS và AngularJS hoạt động ở cấp độ chức năng. Nghĩa là, có thể xảy ra trường hợp bạn chỉ sử dụng một mô-đun trong một số trường hợp nhất định, nhưng việc khởi tạo và triển khai mô-đun đó sẽ luôn diễn ra. Ngoài ra, chúng tôi chỉ có thể xác định các phần phụ thuộc ở một nơi được xác định nghiêm ngặt. Chúng tôi gắn bó với điều này.

      Mẫu

      Chúng tôi thường sử dụng các mẫu. Và chúng tôi làm điều này vì nhu cầu tách biệt dữ liệu và đánh dấu HTML. Các framework hiện đại hoạt động như thế nào với các mẫu? Dưới đây là những cách tiếp cận phổ biến nhất:

      Mẫu được xác định trong Hello, !

      Cách tiếp cận này thường được sử dụng vì các mẫu có dạng HTML. Điều này có vẻ tự nhiên và hợp lý vì HTML có thẻ. Trình duyệt không hiển thị nội dung của các thành phần và điều này không thể làm sai lệch giao diện của trang.

      Mẫu được tải thông qua AJAX Backbone.View.extend(( "template": "my-view-template", "render": function() ( $.get("/templates/" + this.template + ".html ", function(template) ( var html = $(template).tmpl(); ) ));

      Chúng tôi đặt mã của mình ở bên ngoài Tệp HTML và tránh sử dụng các thẻ bổ sung. Nhưng bây giờ chúng tôi cần nhiều yêu cầu HTTP hơn, điều này không phải lúc nào cũng phù hợp (ít nhất là cho đến khi hỗ trợ HTTP2 trở nên phổ biến hơn).

      Mẫu là một phần của đánh dấu - khung lấy nó từ cây DOM. Phương pháp này dựa trên HTML đã được tạo. Chúng tôi không cần thực hiện các yêu cầu HTTP bổ sung, tạo tệp mới hoặc các tệp .

      Mẫu này là một phần của đánh dấu trang var HelloMessage = React.createClass(( render: function() ( // Xin lưu ý: dòng mã sau // không phải là JavaScript hợp lệ. return Hello (this.props.name); ) ));

      Cách tiếp cận này đã được giới thiệu trong React, sử dụng trình phân tích cú pháp riêng để biến một đoạn JavaScript không hợp lệ thành mã hợp lệ.

      Mẫu - không phải HTML

      Một số khung không sử dụng HTML trực tiếp. Thay vào đó, các mẫu được lưu trữ dưới dạng JSON hoặc YAML.

      Cuối cùng về mẫu

      Được rồi, tiếp theo là gì? Tôi hy vọng rằng với khuôn khổ tương lai, chúng ta sẽ xem xét dữ liệu và đánh dấu riêng biệt. Để chúng không giao nhau. Chúng tôi không muốn giải quyết việc tải chuỗi vào HTML hoặc chuyển dữ liệu đến các hàm đặc biệt. Chúng tôi muốn gán giá trị cho các biến và có bản cập nhật DOM. Chung ràng buộc hai chiều không nên là một cái gì đó thêm, nó phải là bắt buộc chức năng cơ bản.

      Nói chung, hành vi của AngularJS gần nhất với những gì mong muốn. Nó đọc mẫu từ nội dung của trang được cung cấp và thực hiện liên kết hai chiều kỳ diệu. Tuy nhiên, nó vẫn chưa hoàn hảo. Đôi khi có hiện tượng nhấp nháy. Điều này xảy ra khi trình duyệt đang hiển thị HTML nhưng cơ chế tải AngularJS vẫn chưa bắt đầu. Ngoài ra, AngularJS còn sử dụng séc bẩn liệu có gì thay đổi không. Cách tiếp cận này đôi khi rất tốn kém. Hy vọng tất cả các trình duyệt sẽ sớm hỗ trợ Object.observe và khả năng liên kết sẽ tốt hơn.

      Sớm hay muộn, mọi nhà phát triển đều phải đối mặt với vấn đề về mẫu động. Chắc chắn có những phần trong ứng dụng của chúng tôi xuất hiện sau khi tải xuống. Với khuôn khổ nó sẽ dễ dàng. Chúng ta không cần phải lo lắng về các yêu cầu AJAX và API phải sao cho quy trình có vẻ đồng bộ.

      Tính mô đun

      Tôi thích khi các tùy chọn có thể được bật và tắt. Và nếu chúng ta không sử dụng thứ gì đó thì tại sao lại giữ nó trong mã dự án? Sẽ thật tuyệt nếu khung có một trình xây dựng tạo ra một phiên bản chỉ có các mô-đun cần thiết. Ví dụ như YUI, có một bộ cấu hình. Chúng tôi chọn các mô-đun mà chúng tôi muốn và nhận được tệp JavaScript được rút gọn và sẵn sàng sử dụng.

      Mặc dù vậy, vẫn có những framework có thứ gọi là cốt lõi. Ngoài ra, chúng ta có thể sử dụng một gói plugin (hoặc mô-đun). Nhưng chúng ta có thể cải thiện điều này. Quá trình lựa chọn các tính năng bạn muốn không nhất thiết phải liên quan đến việc tải xuống tệp. Chúng tôi không phải đưa chúng vào trang theo cách thủ công. Điều này bằng cách nào đó phải là một phần của mã khung.

      Ngoài khả năng cài đặt đầy đủ, một môi trường lý tưởng sẽ cho phép khả năng mở rộng. Chúng tôi có thể viết các plugin của riêng mình và chia sẻ chúng với các nhà phát triển khác. Nói cách khác, môi trường phải thuận lợi cho việc viết mô-đun. Không thể tạo ra một cộng đồng vững mạnh nếu không có những điều kiện phù hợp cho các nhà phát triển.

      API mở

      Hầu hết các khung đều cung cấp API cho chức năng cốt lõi của chúng. Nhưng bằng cách sử dụng các API này, chúng tôi chỉ có thể tiếp cận những phần mà nhà cung cấp cho là cần thiết đối với chúng tôi. Và đây có thể là lúc cần hack. Chúng tôi muốn có được thứ gì đó, nhưng không có công cụ phù hợp cho việc này. Và bạn phải sử dụng thủ đoạn và đi đường vòng. Hãy xem xét ví dụ này:

      Var Framework = function() ( var router = new Router(); var Factory = new ControllerFactory(); return ("addRoute": function(path) ( var rData = router.resolve(path); var control = Factory.get (rData.controllerType); bộ định tuyến.register(đường dẫn, bộ điều khiển.handler); bộ điều khiển trả về; var AboutCtrl = Framework.addRoute("/about");

      Khung này có một bộ định tuyến tích hợp. Chúng tôi xác định đường dẫn và bộ điều khiển được khởi tạo tự động. Khi người dùng truy cập một URL cụ thể, bộ định tuyến sẽ gọi phương thức xử lý trên hàm tạo. Điều này thật tuyệt, nhưng nếu chúng ta cần thực thi một hàm JavaScript nhỏ khi một URL khớp thì sao? Vì lý do nào đó, chúng tôi không muốn tạo bộ điều khiển bổ sung. Điều này sẽ không hoạt động với API hiện tại.

      Chúng ta có thể làm khác đi, ví dụ như thế này:

      Var Framework = function() ( var router = new Router(); var Factory = new ControllerFactory(); return ("createController": function(path) ( var rData = router.resolve(path); return Factory.get(rData .controllerType); ) "addRoute": function(path, handler) ( router.register(path, handler); ) ) var AboutCtrl = Framework.createController(( "type": "about" )); Framework.addRoute("/about", AboutCtrl.handler);

      Lưu ý rằng bộ định tuyến không nhô ra ngoài. Nó không hiển thị, nhưng giờ đây chúng ta có thể kiểm soát cả việc tạo bộ điều khiển và đăng ký đường dẫn trong bộ định tuyến. Tất nhiên, phương án đề xuất phù hợp với nhiệm vụ cụ thể của chúng tôi. Nhưng nó có thể quá phức tạp vì bộ điều khiển phải được tạo thủ công. Khi phát triển API, chúng tôi được hướng dẫn bởi nguyên tắc trách nhiệm và lý do thống nhất làm một việc và làm tốt nó. Tôi thấy ngày càng có nhiều framework phân cấp chức năng của chúng. Họ chia nhỏ các kỹ thuật phức tạp thành những phần nhỏ hơn. Và đây là một dấu hiệu tốt, tôi hy vọng sẽ có thêm nhiều framework làm được điều này trong tương lai.

      Khả năng kiểm tra

      Không cần phải thuyết phục bạn viết bài kiểm tra cho mã của mình. Vấn đề không chỉ là bạn cần viết bài kiểm tra mà còn cần viết mã có thể thực hiện được bằng các bài kiểm tra. Đôi khi việc này vô cùng khó khăn và tốn thời gian. Tôi tin chắc rằng nếu chúng ta không viết bài kiểm tra cho một thứ gì đó, ngay cả đối với một thứ rất nhỏ, thì đây là lúc lỗi sẽ bắt đầu xuất hiện trong ứng dụng. Điều này đặc biệt đúng với JavaScript phía máy khách. Nhiều trình duyệt, nhiều hệ điều hành, thông số kỹ thuật mới, tính năng mới và các polyfill của chúng - có rất nhiều lý do để bắt đầu thực hành phát triển dựa trên thử nghiệm.

      Có điều gì đó khác mà chúng ta sẽ nhận được từ các bài kiểm tra. Chúng tôi không chỉ đảm bảo rằng khung (ứng dụng) của chúng tôi hoạt động ngày hôm nay. Chúng tôi đảm bảo rằng nó sẽ hoạt động vào ngày mai và ngày kia. Nếu có một số tính năng mới mà chúng tôi đưa vào mã, chúng tôi sẽ viết bài kiểm tra cho nó. Và điều rất quan trọng là chúng tôi phải đảm bảo rằng những bài kiểm tra này đều được thông qua. Nhưng điều quan trọng nữa là các bài kiểm tra trước đó phải được thông qua. Đây là cách chúng tôi đảm bảo không có gì bị hỏng.

      Tôi muốn thấy nhiều tiện ích và phương pháp thử nghiệm được tiêu chuẩn hóa hơn. Tôi muốn sử dụng một tiện ích để kiểm tra tất cả các khung. Sẽ thật tuyệt nếu việc thử nghiệm bằng cách nào đó được đưa vào quá trình phát triển. Bạn nên chú ý hơn đến các dịch vụ như Travis CI. Chúng hoạt động như một chỉ báo không chỉ cho người lập trình thực hiện các thay đổi mà còn cho những người đóng góp khác.

      Tôi vẫn đang làm việc với PHP. Tôi đã phải làm việc với các framework như WordPress. Và rất nhiều người đã hỏi tôi cách kiểm tra ứng dụng của mình: tôi sử dụng framework nào, cách tôi chạy thử nghiệm, liệu tôi có các thành phần hay không. Sự thật là tôi không kiểm tra bất cứ điều gì. Và đó là lý do tại sao tôi không có các thành phần. Điều tương tự cũng áp dụng cho một số khung JavaScript. Một số bộ phận của chúng rất khó kiểm tra vì chúng không được chia thành các thành phần. Các nhà phát triển cũng nên suy nghĩ theo hướng này. Có, họ cung cấp cho chúng tôi mã thông minh, thanh lịch và hoạt động được. Nhưng mã cũng phải có thể kiểm tra được.

      Tài liệu

      Tôi chắc chắn rằng nếu không có tài liệu tốt thì dự án nào cũng sớm muộn sẽ thất bại. Một loạt các khung và thư viện được phát hành mỗi tuần. Tài liệu là điều đầu tiên một nhà phát triển nhìn thấy. Không ai muốn dành hàng giờ để tìm hiểu xem một tiện ích nào đó làm được gì và nó có những khả năng gì. Chỉ liệt kê các chức năng cốt lõi là không đủ. Đặc biệt đối với một khuôn khổ lớn.

      Tôi sẽ chia tài liệu tốt thành ba phần:

      • Tôi có thể làm gì - tài liệu sẽ hướng dẫn người dùng và nên thực hiện chính xác. Cho dù framework của chúng ta có tuyệt vời hay mạnh mẽ đến đâu thì nó cũng cần được giải thích. Một số người thích xem video, những người khác thích đọc bài viết. Trong mọi trường hợp, nhà phát triển cần hiển thị mọi thứ từ những điều cơ bản nhất đến những phần phức tạp của khung.
      • Tài liệu API thường có ở khắp mọi nơi. Danh sách đầy đủ tất cả các phương thức API công khai, chúng có những tham số nào và những gì chúng trả về. Có thể một số ví dụ sử dụng.
      • Cách thức hoạt động - thông thường phần này không có trong tài liệu. Chà, nếu ai đó có thể giải thích cấu trúc của khung, thì ngay cả một sơ đồ đơn giản về chức năng cơ bản và các mối quan hệ của nó cũng sẽ hữu ích. Điều này sẽ làm cho mã trở nên minh bạch. Điều này sẽ giúp ích cho những nhà phát triển muốn thực hiện những thay đổi của riêng họ.
      Phần kết luận

      Tất nhiên, tương lai là điều khó dự đoán. Nhưng chúng ta có thể mơ về nó! Điều quan trọng là phải nói về những gì chúng ta mong đợi và những gì chúng ta muốn từ các khung JavaScript! Nếu bạn có nhận xét, đề xuất hoặc muốn chia sẻ suy nghĩ của mình, hãy viết lên Twitter kèm theo hashtag

      Chúng tôi tiếp tục so sánh các Khung Javascript hàng đầu cho năm 2011. Chúng tôi đã xác định, bằng cách sử dụng các phương pháp khoa học nghiêm ngặt, tránh tính chủ quan và chủ nghĩa biểu đạt không cần thiết, chính những nhà lãnh đạo thế giới này, à, hôm nay chúng ta sẽ xem xét họ một cách trực tiếp và chặt chẽ - sáu thư viện javascript hàng đầu thế giới theo thứ tự mức độ phổ biến giảm dần.

      1 nơi:

      Kích thước: 155Kb (phiên bản tối thiểu - 72Kb), giấy phép: MIT và GNU GPL, Phiên bản mới nhất: 1.6 (03/05/2011)

      jQuery là thư viện JavaScript phổ biến và phổ biến nhất, tập trung vào sự tương tác giữa JavaScript và HTML. jQuery cũng cung cấp một API thuận tiện để làm việc với Ajax. Khung này là một trong những khung đầu tiên được triển khai thành công. Một bí mật khác về sự phổ biến của thư viện này là việc thực hiện sự cân bằng rất nhất quán giữa chức năng tốt và đồng thời là nỗ lực thành công để tạo ra một hạt nhân phổ quát khá nhỏ gọn. Nếu chúng tôi thêm vào đây khả năng thỏa hiệp để mở rộng chức năng của thư viện cơ sở một cách rất đơn giản bằng cách bao gồm các plugin bổ sung (số lượng plugin hiện đã vượt quá 1000) - thì kết quả là một sản phẩm thực sự phổ biến, linh hoạt và nhanh chóng.

      Đối với những người muốn nhận được các hiệu ứng UI nâng cao hơn (UI, giao diện người dùng), chẳng hạn như chia tỷ lệ, sắp xếp, hỗ trợ kéo và thả cũng như các tiện ích tiêu chuẩn như dấu trang, thanh trượt, thanh tiến trình, v.v., nên sử dụng thư viện liên quan , chuyên về hiệu ứng đồ họa và tạo các hiệu ứng phức tạp giao diện người dùng.

      Nhìn chung, jQuery rất có lợi cho các dự án vừa và nhỏ, nhưng khi phát triển dự án chính có thể có vấn đề vì nó dẫn đến thiếu sót trong thiết kế, mặc dù nó rất hiệu quả do nội dung và mã đơn giản. Chà, sự phổ biến của sản phẩm được chứng minh bằng việc các đối thủ cạnh tranh trước đây, chẳng hạn như xajax (xajaxproject.org), cuối cùng cũng chuyển sang sử dụng jQuery, Microsoft sẽ phổ biến chia sẻ jQuery với các công nghệ của nó và Nokia công bố ý định tích hợp jQuery cho các widget di động của mình.

      Digg, BBC, Dell, IsoHunt, Break.com, TinyPic, eMusic, Box.net, Yandex Maps.

      Từ khóa dành cho SEO: menu jquery, oygukn, ví dụ jquery ajax, tài liệu tham khảo javascript, oygukn

      Vị trí thứ 2:

      Kích thước: 278Kb (phiên bản tối thiểu - 56Kb), giấy phép: MIT, phiên bản mới nhất: 1.7 (22/11/2010)


      Khung js phổ biến thứ hai, giúp đơn giản hóa đáng kể khi làm việc với Ajax và một số tính năng js nâng cao khác. Mặc dù có sẵn như một thư viện độc lập nhưng nó thường được các lập trình viên sử dụng nhiều nhất cùng với Ruby on Rails, Tapestry, script.aculo.us và Rico. Thông thường, sự tích hợp chặt chẽ với Ruby on Rails phổ biến đang cố gắng giải thích mức độ phổ biến của nó (mặc dù jQuery đã được thảo luận ở cấp plugin cũng có thể tương tác với nhiều nền tảng phổ biến, ví dụ: với cùng Ruby on Rails hoặc PHP (jquery. hohli.com)).

      Từ quan điểm thiết kế, khung này rất thuận tiện cho các dự án cỡ trung bình, vì nó cung cấp một cách thô sơ để mô phỏng OOP cổ điển bên cạnh chức năng đơn giản của nó. Hiệu suất của nó có phần không ổn định, tức là. Trong một số thao tác, nó có thể nhanh, ở những thao tác khác, hiệu suất giảm đáng kể. Nguyên mẫu là một trong số ít khung không bao gồm các thành phần giao diện người dùng hoặc cải tiến UX - để sử dụng các hiệu ứng như vậy, bạn nên sử dụng thư viện con của nó - script.aculo.us (hoặc Scripty2), thư viện này bổ sung một số lượng lớn các hiệu ứng đồ họa, hỗ trợ kéo và thả, thanh trượt, trình soạn thảo Ajax, v.v.

      Ví dụ về các trang web nổi tiếng dựa trên khuôn khổ này: CNN, The New York Times, Apple, Fox News Channel, Last.fm, Twitter, Hakia.

      Từ khóa dành cho SEO: java script, download nguyên mẫu, javascript js, tài liệu js, script js, so sánh framework

      Vị trí thứ 3:

      Kích thước: 101Kb (phiên bản tối thiểu - 60Kb), giấy phép: MIT, phiên bản mới nhất: 1.3 (11/10/2011)


      MooTools là một framework hướng đối tượng, mô-đun. Cách tiếp cận thiết kế cốt lõi của nó rất giống với jQuery và Prototype - nó không bao gồm các điều khiển và tiện ích giao diện người dùng, tự giới hạn ở một bộ hiệu ứng và khả năng tối thiểu.

      Đây là một thư viện JavaScript rất tốt - nhanh nhẹn, nhỏ gọn, được chia thành nhiều mô-đun nhỏ, được ghi chép đầy đủ. Theo quan điểm nhất trí của chúng tôi, mã ở đây rõ ràng hơn và được tổ chức tốt hơn so với mã dẫn đầu - jQuery. Tính mô-đun là một điểm cộng lớn riêng biệt: có thể biên dịch thư viện cần thiết cho một mục đích cụ thể - mặc dù mức tiết kiệm tính bằng kilobyte so với jQuery thực tế là không có gì. Có một quan điểm rập khuôn rằng những người mới bắt đầu nên sử dụng jQuery sẽ tốt hơn và những lập trình viên có kinh nghiệm sẽ tốt hơn khi sử dụng MooTools, nhưng chúng tôi tin rằng MooTools sẽ tốt hơn cho cả hai.

      Ngoài ra, khung này còn chứa một plugin rất thú vị MooTools.More.js, thực sự không chỉ là một plugin: nó cho phép bạn mở rộng đáng kể khả năng của các thư viện bên thứ ba, đồng thời có phần bổ sung rất thú vị- tiện ích để thao tác mảng và ngày tháng, hashemi, chuỗi, v.v. Chúng tôi rất ấn tượng bởi khả năng bản địa hóa cú pháp tiếng Anh của chính ngôn ngữ mootools sang bất kỳ ngôn ngữ quốc gia nào, cho phép bạn lập trình bằng ngôn ngữ đó một cách thoải mái nhất có thể, chẳng hạn như bằng tiếng Nga.

      Ví dụ về các trang web nổi tiếng dựa trên khuôn khổ này: MooTools được sử dụng trong Joomla CMS, vì vậy có rất nhiều trang web như vậy. Cũng được sử dụng bởi (World Wide Web Consortium)

      Từ khóa dành cho SEO: mootools joomla, mootools jquery, mootools js

      Vị trí thứ 4:


      Thư viện Yahoo! Thư viện giao diện người dùng (YUI) là một tập hợp các tiện ích và điều khiển được viết bằng JavaScript và CSS để tạo các ứng dụng web tương tác bằng cách sử dụng tập lệnh DOM, kỹ thuật DHTML và Ajax. Có hai loại thành phần có sẵn trong khung này: tiện ích và điều khiển. Các tiện ích đơn giản hóa việc phát triển trình duyệt liên quan đến DOM, DHTML và Ajax. Điều khiển là một tập hợp các yếu tố trực quan có tính tương tác cao, được tạo sẵn để thiết kế các trang web. Tất cả các phần tử này được tạo và chỉ hoạt động ở phía máy khách và không yêu cầu làm mới trang để thay đổi chúng. Toàn bộ thư viện được phân phối theo giấy phép BSD và miễn phí cho tất cả người dùng. YUI được tạo ra bởi các kỹ sư hàng đầu của Yahoo cũng như các nhà phát triển từ khắp nơi trên thế giới. Giờ đây, nó là một trong những khung công tác js hàng đầu, hoàn toàn sẵn sàng để sử dụng trong công nghiệp, nơi các thành phần UI và UX rất tiên tiến được tích hợp thành một tổng thể trong một lần phân phối, tạo thành một sản phẩm hoàn chỉnh, độc lập và phổ quát. Nếu chúng ta thêm vào giấy phép rất tự do này của nó, thì sự phổ biến mà thư viện này đạt được là điều dễ hiểu, đặc biệt là trong các hoạt động phát triển thương mại và nhiều nhánh mà nó được lấy làm cơ sở.

      Ví dụ về các trang web nổi tiếng dựa trên khuôn khổ này: Yahoo! Mua sắm, Bebo, ImageShack, LinkedIn, Walmart.com.

      Từ khóa dành cho SEO: tải yui, nfrschsch

      Vị trí thứ 5:

      Kích thước: 502Kb (phiên bản tối thiểu - 84Kb), giấy phép: GPLv3 và thương mại, phiên bản mới nhất: 4.0 (26/04/2011)


      Dự án bắt đầu như một nỗ lực nhằm mở rộng Yahoo! Giao diện người dùng, nhưng ở giai đoạn này nó đã là một dự án hoàn toàn nguyên bản, thực tế không liên quan đến YUI. Động lực, người sáng lập và lãnh đạo thường trực của dự án vẫn là Jack Slotsum, một chuyên gia nổi tiếng trong cộng đồng lập trình JavaScript.

      ExtJS không phải là framework hiệu quả nhất hiện có, chính nó đặc điểm phân biệt trong đó nó cung cấp môi trường gần nhất với lập trình cổ điển, triển khai các phương tiện hiển thị đồ họa và tương tác người dùng phát triển cao trong môi trường Web 2.0. Bắt đầu với phiên bản Ext JS 3.0, thư viện được chia thành hai phần một cách hợp lý: Ext Core (một tập hợp các hàm JavaScript cho phép bạn tạo các trang web động với khả năng xử lý thống nhất trong các trình duyệt khác nhau và được phân phối theo giấy phép MIT) và Ext JS (một bộ tiện ích để tạo giao diện người dùng được cấp phép kép theo GPL v3 hoặc giấy phép thương mại).

      Nhìn chung, ExtJS tạo ấn tượng rất tốt - framework này có khả năng đồ họa thực sự tuyệt vời. Ở đây ranh giới giữa ứng dụng web và máy tính để bàn đang trở nên mỏng hơn.

      Từ khóa dành cho SEO: ext download, ext 4, ext js, ext 3, ext 2, ext yst pfdtltybz

      Vị trí thứ 6:

      Kích thước: 123Kb (phiên bản tối thiểu - 65Kb), giấy phép: BSD và AFL, phiên bản mới nhất: 1.6.0 (15 tháng 3 năm 2011)


      Một ví dụ khác từ danh sách các khung phổ biến, ngoài việc lặp lại phần lớn những ưu điểm của các khung tương tự, còn có những đặc điểm riêng. Trong số những điều quan trọng nhất, tôi muốn đề cập đến một nỗ lực rất nghiêm túc nhằm đạt được sự độc lập hoàn toàn với từng trình thông dịch JS cụ thể, mà các nhà phát triển chỉ đơn giản là thực hiện một công việc vĩ đại là thử nghiệm và tìm ra các giải pháp đơn giản và phổ biến nhất. Do đó, kết quả là phạm vi ứng dụng của khung này càng rộng càng tốt: đây không chỉ là các giải pháp thông thường ở phía máy khách mà còn ở phía máy chủ và máy tính để bàn - bất cứ nơi nào có thể chạy JavaScript. Tính năng kỹ thuật quan trọng thứ hai của Dojo là hỗ trợ thiết kế Nhiều điểm vào, mang lại cho nó nhiều lợi thế kỹ thuật rõ ràng. Tôi cũng muốn đề cập đến Tiện ích mở rộng Dojo cho Adobe AIR, được thiết kế để giúp các nhà phát triển sử dụng toàn bộ tiềm năng của nền tảng AIR trong các ứng dụng sử dụng Bộ công cụ Dojo.

      Ví dụ về các trang web nổi tiếng dựa trên khung này: Bộ công cụ Dogo được sử dụng tích cực trong tiện ích mở rộng PHP nổi tiếng - Zend Framework, vì vậy có rất nhiều trang web như vậy.

      Từ khóa dành cho SEO: tải hướng dẫn chi tiết về võ đường, bộ công cụ võ đường zend dojo, ví dụ về võ đường

      Trong phần cuối cùng của tác phẩm này, tôi sẽ không còn nhìn vào những người dẫn đầu nữa mà chỉ nhìn vào những khuôn khổ rất hứa hẹn. Như mọi khi trong các bài viết của mình, tôi cố gắng không chỉ nhìn vào đôi chân của mình, đồng thời nêu ra những sự thật đôi khi tầm thường, mà còn nhìn về phía trước một chút - nếu có thể, nhìn về tương lai. Từ quan điểm này, tôi đưa ra kết luận Top 3 + triết học bổ sung về chủ đề này (đặc biệt đối với các lập trình viên js trẻ).

      Nếu bạn phát triển các ứng dụng web bằng JavaScript thì bạn đã sử dụng các framework cho việc này. Khi sử dụng framework, bạn không cần phải nhớ những đoạn code lớn mà có thể sử dụng thư viện, kết nối thành phần cần thiết và sử dụng các mẫu. Nhiều người nghĩ về jQuery như một khung công tác JavaScript. Nhưng jQuery không phải là một framework chính thức, nó là một thư viện, mặc dù là thư viện lâu đời nhất và phổ biến nhất. Hôm nay chúng ta sẽ không nói về jQuery.

      Trong bài viết hôm nay, chúng ta sẽ xem xét danh sách 10 framework JS phổ biến nhất được sử dụng để phát triển các ứng dụng web.

      AngularJS

      AngularJS là một nền tảng phát triển ứng dụng web nguồn mở được Google giới thiệu vào năm 2009.

      AngularJS được thiết kế cho các ứng dụng web động, với sử dụng HTML cho các trang web tĩnh. Về cơ bản, nó mở rộng HMTL và triển khai các tính năng như liên kết sâu, gỡ lỗi, thao tác DOM tự động và xác thực biểu mẫu phía máy khách mà không cần sử dụng bất kỳ mã JavaScript bổ sung nào.

      Với khung này, bạn có thể tạo các phần tử HTML mới, sử dụng "các thành phần" để tạo và lưu các đoạn mã để sử dụng sau này. Nó cũng có rất nhiều công cụ cho tất cả các loại thử nghiệm.

      Mặc dù đối với người mới bắt đầu, có thể khó thành thạo nền tảng này do tất cả các loại chỉ thị, thành phần, nội dung tiêm, v.v.

      ReactJS là một framework JavaScript tuyệt vời được Instagram và Facebook phát hành vào năm 2013. Nó giúp dễ dàng tạo các ứng dụng động phức tạp và quy mô lớn. Ở đây chúng ta đang nói về khả năng hiển thị đỉnh cao của giao diện người dùng hiệu suất cao (và phức tạp). Bạn có nhớ JavaScript đã nhanh chóng trở thành ngôn ngữ phía máy chủ với node.js như thế nào không? Và với React, bạn có thể phát triển ứng dụng cho cả phía máy khách và máy chủ.

      React đang ngày càng phổ biến nhanh chóng, mặc dù nó còn khá mới.

      Ember.js

      Đây là một trong những framework MVC JavaScript phổ biến nhất. Nó xuất hiện vào năm 2011 dưới dạng nguồn mở. Nó có thể được sử dụng để tạo các ứng dụng web một trang có khả năng mở rộng khá dễ dàng.

      Trong lĩnh vực liên kết dữ liệu hai chiều, Ember tương tự như Angular. Nó cũng thực hiện công việc kết xuất DOM phía máy chủ hàng đầu. Mặc dù nhìn chung thì nó dễ sử dụng hơn so với Angular.

      xương sốngJS

      BackboneJS được sử dụng bởi Walmart, Pinterest, Twitter, Hulu, v.v.

      Đây là một framework rất nhẹ. Loại bỏ chức năng không cần thiết khỏi các khung công tác JS phổ biến và bạn sẽ nhận được Backbone. Đây là một trong những framework tốt nhất cho các ứng dụng web một trang. Mặc dù để mở rộng chức năng, bạn sẽ phải thêm các thư viện khác làm phụ thuộc.

      Backbone rất giống jQuery với số lượng plugin và tiện ích mở rộng khổng lồ. Thật tuyệt vời cho người mới bắt đầu sử dụng các ứng dụng đơn giản.

      KnockoutJS

      KnockoutJS là một khung JavaScript mã nguồn mở tuyệt vời khác hoạt động với mô hình MVVM (Model-View-ViewModel). Nó được phát triển bằng JavaScript đơn giản mà không có bất kỳ sự phụ thuộc bên ngoài nào.

      Anh ấy đặc biệt giỏi trong việc ràng buộc dữ liệu. Nó rất dễ sử dụng và giúp ngay cả những người mới bắt đầu cũng dễ dàng bắt đầu một dự án.

      Khung này rất phù hợp cho các ứng dụng trang đơn, đặc biệt là thư viện. Mặc dù nó không có cộng đồng lớn như bất kỳ nền tảng nào ở trên.

      Nếu bạn coi trọng sự đơn giản và không muốn sử dụng tập lệnh phía máy chủ, hãy chọn Knockout.

      Meteor.js

      MeteorJS có tất cả các tính năng mà bất kỳ nhà phát triển nào cũng cần để kết xuất front-end, phát triển back-end và quản lý cơ sở dữ liệu.

      Nó mang lại cho bạn sự linh hoạt và các công cụ để tạo ra các ứng dụng phong phú.

      Các gói phía máy chủ chạy trong node.js, vì vậy bạn chỉ cần các gói MeteorJS để mở cơ sở dữ liệu. Các thay đổi đối với cơ sở dữ liệu được mô phỏng lại trong giao diện người dùng mà không gây nhầm lẫn giữa các ngôn ngữ khác nhau.

      Aurelia.js

      AureliaJS là framework JS thế hệ tiếp theo dành cho các ứng dụng web và di động.

      Điều tuyệt vời nhất về Aurelia là nó có tính mô-đun cao và chứa khá nhiều thư viện nhỏ độc lập. Bạn, với tư cách là nhà phát triển, có thể chọn từ các thư viện này để tạo khung của riêng mình.

      Polyme.js

      PolymerJS được Google phát hành vào năm 2013.

      Nó sử dụng khái niệm về các thành phần web để mở rộng khả năng của HTML. Nếu điều này làm bạn nhớ đến Angular thì đó là vì nó đúng như vậy. PolymerJS mang lại siêu năng lực và cấu trúc cho các phần tử HTML tùy chỉnh.

      Skel là một khung JavaScript thuần túy.

      Đó là lý tưởng để tạo các ứng dụng web và các trang web đáp ứng. Nó đi kèm với lưới CSS, điểm dừng, API và các tính năng chuẩn hóa kiểu trình duyệt.

      Vue.js là một framework khá mới. Mặc dù nó đang nhanh chóng trở nên phổ biến trong giới phát triển web.

      Khung này hoạt động với mô hình thiết kế MVVM và được thiết kế để tạo giao diện người dùng theo mô hình lập trình phản ứng với API đơn giản và tương thích.

      Kết luận ngắn gọn

      Trong bài viết này, chúng tôi không đề cử bất kỳ khung JavaScript nào cho chức vô địch. Tùy thuộc vào bạn để quyết định dựa trên mục tiêu của bạn và những gì bạn cần.

      Bộ sưu tập này bao gồm 15 framework tiện lợi cho giao diện người dùng. Ngoài những nền tảng phổ biến nhất, còn có một số nền tảng ít được biết đến hơn trong danh sách - chúng tôi hy vọng mọi người có thể tìm được giải pháp phù hợp cho dự án của mình.

      Góc cạnh

      Một viên ngọc quý của lập trình web: Ngay cả một số người theo đuổi Angular nhiệt thành cũng đã chọn React. React đã làm được điều mà Angular không thể làm - nó cho phép bạn phát triển giao diện người dùng mà không cần phải lao vào những vấn đề rắc rối và phức tạp của framework. React là một thư viện JavaScript do Facebook tạo ra và mục đích chính của nó là cung cấp công việc thoải mái với Shadow DOM. Với mục đích này, Virtual DOM được sử dụng, một mô hình mà với mỗi thay đổi sẽ tạo ra một danh sách các thao tác phải được thực hiện trên DOM để đưa nó sang trạng thái mới.

      Nếu bạn quan tâm đến khuôn khổ này và quyết định bắt đầu nghiên cứu nó, chúng tôi đã chuẩn bị bản dịch cho bạn về chủ đề này. Vào tháng 4 năm 2017, Facebook đã khởi động lại thư viện, dự án mới sẽ có tên là React Fiber.

      Ổ cắm

      Nếu bạn không chú ý đầy đủ đến cấu trúc mã, ngay cả khi chỉ phát triển một trang hoặc ứng dụng một trang, mã của bạn có thể biến thành một đĩa spaghetti thực sự. Backbone được xây dựng dựa trên ý tưởng rằng tất cả công việc phía máy chủ phải được thực hiện thông qua API, giảm thiểu số lượng mã cần thiết để đạt được chức năng phong phú giống như các khung web phức tạp.

      Backbone là một trong những framework phổ biến nhất để phát triển web, chủ yếu vì hai lý do: nguyên tắc sử dụng các module rất dễ hiểu, có nghĩa là việc học cách sử dụng framework cũng rất đơn giản.

      Vue

      Thư viện để tạo các ứng dụng web và di động trên nhiều trình duyệt chứa một tập hợp lớn các thành phần giao diện người dùng sẵn sàng sử dụng, có thể được kết hợp hoặc sử dụng riêng lẻ. Các widget tương thích với bất kỳ công nghệ máy chủ: PHP, Java, ASP.NET, Ruby, Grails, ColdFusion, Python, v.v. TRONG phiên bản mới 5.1 đã thêm hỗ trợ cho API TypeScript, JSON và Promise.

      PureMVC