JavaScript là một trong những ngôn ngữ lập trình thông dụng nhất trong những năm gần đây. Vậy JavaScript có những framework nào đáng chú ý và bạn nên tìm hiểu? Bài viết sau đây cung cấp các thông tin về 10 JavaScript framework được đánh giá cao trong các cuộc khảo sát của GitHub, StackOverFlow… Lưu ý là bên cạnh 8 framework thuần JavaScript còn có React và Node.js. React là một thư viện JavaScript để xây dựng giao diện người dùng (View layer). Node.js là một JavaScript runtime và không phải là một framework. Tuy nhiên Node.js cung cấp một một hệ sinh thái dựa trên JavaScript dùng xây dựng các back-end. Cả React và Node.js đều rất thông dụng và được ứng dụng khá rộng rãi và vì vậy được đưa vào danh sách các JavaScript Framework thông dụng dù có thể có nhiều người không đồng ý.
1/ React
React không nằm trong số các web framework sớm nhất được tạo ra dựa trên nền tảng JavaScript. Tuy nhiên, nó là web framework có tính chất đột phá nhất và có sự ảnh hưởng nhiều nhất được tạo ra dựa trên ngôn ngữ lập trình này. Jordan Walke và một nhóm các kỹ sư của Facebook đã tạo ra React vào 2013 như là một web framework dựa trên Component với dòng dữ liệu một chiều và thay đổi mảng lập trình web Front-end vĩnh viễn. Nó cũng giới thiệu nhiều khái niệm khác như: lập trình hàm (functional programming), lập trình khai báo (declarative programming), tính bất biến của đối tượng (immutable state), là những điều hiếm gặp trong mảng phát triển front-end. Sự đột phá khác của React chính là giới thiệu Virtual DOM, mang lại trải nghiệm người dùng tốt hơn và đạt được hiệu suất mong muốn.
Ngày nay, React nằm trong danh sách các web framework có ảnh hưởng lớn và chưa có dấu hiệu cho sự thay đổi.
5 điểm nổi bật:
- React là một trong những unopinionated frameworks, tức không bắt buộc chúng ta tuân theo quy cách nào. React-Core là một thư viện dựa trên các component cho lớp View.
- Câu slogan của React: “Học một lần, code bất cứ đâu”. Kỹ sư phần mềm có thể sử dụng react để phát triển web (React), ứng dụng di động (React Native), Ứng dụng desktop (Electron) và phát triển Back-end (sử dụng cùng với Node.js).
- React cung cấp những gì tốt nhất trong mảng Server-Side rendering (SSR) đi kèm với việc hỗ trợ SEO rất tốt.
- Facebook dẫn dắt sự phát triển React. Các tính năng của React được thử nghiệm bởi hàng tỉ người dùng Facebook.
- React liên tục được cải thiện và gần đây đã giới thiệu React-Fiber (concurrency tốt hơn), React hook (ít boilerplate code hơn), Suspense (rendering tốt hơn).
2/ Node.js
Mặc dù đã có một số nỗ lực để sử dụng JavaScript trong việc phát triển Server-Side, việc này đã thực sự không phổ biến. Năm 2009, Ryan Dahl tạo ra JavaScript Server-Side không đồng bộ và dựa trên sự kiện, Node.js và việc đã đưa JavaScript vào mảng phát triển back-end. Ryan Dahl đã sử dụng các thư viện JavaScript Engine V8 và C++. Kể từ đó, sự phổ biến của Note.js và JavaScript đã tăng vọt. Với Node Package Manager NPM và vô số các framework/thư viện, Node. js đã vượt qua nhiều Server-side framework có trước đó. Vì bản chất là không đồng bộ dựa trên sự kiện (Asynchronous Event-Driven) , có kích thước nhỏ, thời gian khởi chạy nhanh, Node. js đặc biệt phù hợp với các ứng dụng giao tiếp I/O nhiều như web, IoT, Serverless.
Ngày nay, Node.js không hẳn là một framework mà là một hệ sinh thái dùng cho việc phát triển Server-Side JavaScript. Với nhiều sự cải tiến (điển hình như NPM, hệ thống module), Node. js đã giúp cho JavaScript ngày càng trở nên phổ biến.
5 điểm nổi bật:
- Node. js là một nên tảng không đồng bộ, dựa trên các sự kiện (asynchronous, event-Driven) của JavaScript, được dùng để xây dựng các ứng dụng có khả năng mở rộng.
- Node.js là một đa nền tảng và nâng cấp khái niệm “Học một lần, code bất cứ đâu” trên Java lên một cấp độ mới. Nó hoạt động trên hệ điều hành Windows, Linux, macOS, iOS, Android, và nhiều nền tảng khác.
- Với kích thước tương đối nhỏ hơn và khởi động nhanh hơn, Node.js được sử dụng nhiều trong điện toán Serverless.
- Điều hành bởi OpenJS Foundation, Node.js là một nền tảng mã nguồn mở và không bị kiểm soát bởi một tập đoàn công nghệ nào. Ngày nay, hầu như tất cả các gã khổng lồ công nghệ (IBM, Microsoft, Netflix) sử dụng và hỗ trợ Node. js.
- Node.js hỗ trợ JavaScript một cách tự nhiên và tất cả các ngôn ngữ “Compile to JS” như TypeScript, CoffeeScript, DART. Node. js cũng hỗ trợ WebAssembly, một công nghệ rất mới nhưng đang được quan tâm khá lớn trong giới lập trình web.
3/ Vue.js
Ngày nay đa phần các web framework được hỗ trợ bởi các công ty công nghệ. Trong khi đó, Vue.js lại không như vậy, và đó là một ngoại lệ. Năm 2014, Evan – một cựu kỹ sư của Google đã quyết định kết hợp các điểm tốt của AngularJS (View Layer) và những gì tốt nhất của React (Virtual DOM) để tạo ra Vue.js. Ngày nay, Vue.js là một trong những JavaScript web framework phổ biến nhất. Một trong những mục tiêu của Evan You là để giảm những rào cản trong việc phát triển Front-end dựa trên JavaScript. Vue.js là một trong những Front-end framework dễ nhất, nơi các lập trình viên có thể viết các ứng dụng SPA mà không phải nỗ lực nhiều.
Các lập trình viên có thể sử dụng Vue.js như một end-to-end framework với định tuyến (Routing), quản lý trạng thái (State management) như Angular, hoặc chỉ là một view layer như React. Vue.js cũng giống Angular với vai trò là liên kết dữ liệu (data-binding) hai chiều với cùng với Reactivity và tương tự như React với render sử dụng Virtual DOM.
5 điểm nổi bật:
- Vue.js hỗ trợ progressive app development (tổ hợp đặc tính kỹ thuật để phát triển ứng dụng cấp tiến), hay nói cách khác Vue.js là một progressive framework . Nếu bạn có code nền tảng (code-base) JavaScript, thì bạn có thể sử dụng Vue.js để hiện đại hóa code-base của mình.
- Vue.js vừa hoạt động với vai trò là một end-to-end framework, vừa là một View Layer với tính năng quản lý trạng thái (state management).
- Vue.js hỗ trợ two way data binding (tương tự Angular) và Virtual DOM (Document Object Model), Event Sourcing (tương tự React).
- Vue.js có hỗ trợ song song cho cả JavaScript và TypeScript.
- Vue.js đang trải qua một đợt thay đổi và cải tiến lớn trong phiên bản Vue.js 3.0 sắp ra mắt.
4/ Angular
Với AngularJS, Google đã tạo ra một trong những framework Front-end sử dụng JavaScript sớm nhất từ 2010. Tuy nhiên, khi Facebook phát hành React, đã gián tiếp bộc lộ ra những sai sót thiết kế của AngularJS. AngularJS nhanh chóng trở thành một framework lỗi thời. Kết quả là, đội ngũ Google đã tạo ra một framework SPA (Single Page Application) hoàn toàn mới và phát triển nó với tên gọi là Angular trong năm 2016. Mặc dù Angular và AngularJS có tên tương tự, nhưng trên thực tế, chúng là hai framework khác nhau. Không giống như React, nó là một end-to-end framework với sự hỗ trợ đặc biệt của tất cả mọi thứ cần có để phát triển một ứng dụng web ở cấp độ doanh nghiệp. Ngoài ra, Angular là framework quan trọng đầu tiên đã chấp nhận TypeScript và đóng một vai trò đáng kể trong việc làm cho TypeScript trở nên thịnh hành.
Ngày nay, Angular đang tụt hậu so với React, Vue.js, hoặc Svelte ở khía cạnh thổi phồng quảng cáo. Nhưng nó là một Enterprise Grade framework đáng tin cậy và chắc chắn sẽ được sử dụng trong cộng đồng trong nhiều năm tới.
5 điểm nổi bật:
- Angular.js là một end-to-end framework với sự hỗ trợ đặc biệt để phát triển ứng dụng doanh nghiệp. Trong Angular CLI, nó có một trong những công cụ Command-Line tốt nhất trong JavaScript.
- Với TypeScript và việc tách các template từ styling và logic kinh doanh, nó đặc biệt phù hợp cho các Enterprise-grade code-base lớn.
- Angular vốn là Front-end framework bảo mật với các tính năng tích hợp như cải tiến DOM.
- Mặc dù Google là không hỗ trợ Angular theo cùng một cách như cách mà Facebook đang hỗ trợ React, họ vẫn xây dựng để Angular trở thành một framework hấp dẫn và sáng tạo. Gần đây, họ đã thêm Lazy Loading, Differential Loading để cải thiện thời gian tải của mô-đun.
- Trong phiên bản Angular 9, họ phát hành Engine Ivy rendering để cải thiện thời gian khởi động, thời gian đáp ứng và để giảm kích thước gói.
5/ Express
Khi Node.js xuất hiện năm 2009, TJ Holowaychuk đã tạo ra Express.js dựa trên nền tảng web framework Sinatra tối giản. Nó là một web framework tối giản để phát triển ứng dụng web và REST API. Nó cũng có ít các quy tắc phải tuân theo (less opinionated) và hoạt động rất nhanh. Nhiều web JavaScript framework khác được phát triển dựa trên Express.
Ngày nay, Express.js là một trong các JavaScript frameworks phổ biến nhất.
5 điểm nổi bật:
- Express.js được mặc định được xem là một JavaScript Framework Server Side.
- Express là Application framework hoàn chỉnh với middleware, rounting, template.
- Express hỗ trợ mô hình MVC với hệ thống xem hỗ trợ 14 + template Engines.
- Express hỗ trợ routing (định tuyến) mạnh mẽ.
- Express cũng hỗ trợ đàm phán nội dung (content negotiation).
6/ Next.js
Trong phần đầu chúng ta đã đề cập đến React như là một unopinionated Framework, tức không có các quy tắc phải tuân theo , trong đó React-Core chỉ cung cấp view layer. Trong thực tế, cần một end-to-end framework có quy tắc dựa trên nền tảng React. Tim Neutkens và một nhóm kỹ sư phần mềm từ Zeit – một công ty Hà Lan đã tạo ra Next.js như là một web framework end-to-end, cao cấp hơn, nằm trên top của React và Node.js. Next.js cung cấp cả các site Server-Rendered và Static Web cho web, desktop và thiết bị di động.
5 điểm nổi bật:
- Next.js được xây dựng dựa trên hai JavaScript Framework phổ biến và hiệu quả nhất: React và Node. js.
- Nó thỏa mãn tiêu chí: “Học một lần, code bất cứ đâu”. Điều đó co nghĩa là Next.js có thể hoạt động trên web, di động và máy tính để bàn.
- Next.js cung cấp quá trình erver-Side rederring tuyệt vời, đi kèm với hỗ trợ SEO và khởi động nhanh chóng.
- Nó cung cấp mã tự động tách và định tuyến dựa trên hệ thống tập tin.
- Nó cũng hỗ trợ dễ dàng sử dụng dữ liệu lấy và hỗ trợ built-in CSS.
7/ Meteor
Năm 2012, một nhóm kỹ sư đã tạo ra Meteor như là một JavaScript Full-stack framework mã nguồn mở dựa trên Node.js. Nó cũng hỗ trợ xây dựng các ứng dụng end-to-end cho nền tảng web, điện thoại di động, máy tính để bàn và tích hợp tốt với các Front-end phổ biến như React, Vue.js, Angular, Svelte. Nó cũng là một framework “Batteries Included” cùng với hỗ trợ tuyệt vời cho phát triển ứng dụng cấp doanh nghiệp.
5 điểm nổi bật
- Meteor là một framework Full-stack để phát triển stack hoàn chỉnh: frontend-to-backend.
- Để phát triển front-end, nó có công cụ mẫu riêng biệt. Nhưng các lập trình viên có thể sử dụng Meteor với các Framework ngoại vi phổ biến khác như Angular, React, Vue. js hoặc Svelte.
- Nó là một framework Cross-Platform và có thể phát triển một ứng dụng cho web, di động, và máy tính để bàn.
- Meteor đã tích hợp JavaScript stack, cho phép các công nghệ lồng ghép khác nhau (ví dụ: cơ sở dữ liệu MongoDB, react Front-end) với nỗ lực tối thiểu.
- Nó là một nền tảng isomorphic chia sẻ cùng một API trên client-side và server-side.
8/ Svelte
Năm 2016, Rich Harris – một kỹ sư phần mềm đã có những ý tưởng đột phá để phát triển một JavaScript framework không có runtime (no framework-specific Runtime) và đã cho ra đời Svelte. Ý tưởng là sử dụng trình biên dịch Svelte để biên dịch code của framework thành JavaScript, HTML, CSS, và render mã biên dịch cho trình duyệt. Mặc dù các khái niệm không mới trong mảng phát triển phần mềm, nó chưa được khai phá trong mảng phát triển front-end. Các đóng góp đáng kể khác của Svelte là thêm hỗ trợ rất tốt reactivity, dẫn đến nhanh hơn, cải thiện hiệu suất mà Virtual DOM. Ngày nay, nó được cho là framework front-end hàng đầu với sức hút và sự quan tâm to lớn trong ngành công nghiệp phần mềm.
5 điểm nổi bật:
- Nó là một compile-time framework và không cần bất kỳ framework runtime cụ thể nào. Nó có kích thước nhỏ nhất trong số tất cả các framework.
- Svelte thực hiện việc DOM renderring thông qua reactive programming, cho kết quả nhanh hơn so với Virtual DOM ở hầu hết các lần thực hiện. Kết quả là, Svelte cho quá trình render nhanh nhất trong số tất cả các framework.
- Svelte chỉ là một View Layer như React-Core, và nó là một unopinionated framework (tức framework không có quy tắc).
- Svelte hỗ trợ cả client-sie và server-side, đồng thời hỗ trợ SEO rất tốt.
- Các lập trình viên có thể sử dụng Svelte để phát triển ứng dụng web, phát triển ứng dụng di động đa nền tảng hoặc phát triển ứng dụng Desktop.
9/ Koa
Năm 2013, các thành viên cốt lõi của Express.js do TJ Holowaychuk dẫn đầu đã tạo ra Koa như một middleware framework có kích thước nhỏ, hiện đại và mạnh mẽ đối với các ứng dụng web và APIs. Koa có mô-đun lớn, core (lõi) nhỏ và không có middleware. Tuy nhiên, middleware có sẵn và hoạt động như một mô-đun riêng biệt.
5 điểm nổi bật:
- Koa có Core nhỏ gọn nhẹ.
- Koa có cấu trúc mô-đun và cung cấp các mô-đun middleware dễ kết hợp.
- Koa hỗ trợ cascading middleware, cho phép thực hiện các hành động hạ lưu sau đó và thao tác các phản ứng ngược dòng.
- Koa sử dụng mẫu async/await thay vì callback và hỗ trợ , code sạch và “cảm xúc” hơn (cleaner and expressive code), đi kèm với xử lý lỗi tốt hơn.
- Về mặt hiệu suất, nó vượt trội hơn so với Express.js.
10/ Ember.js
Lấy cảm hứng từ nguyên tắc Ruby on Rails “Convention over Configuration” – (Quy ước vượt trên cấu hình), Yehuda Katz từ Apple đã tạo ra Ember.js là một framework end-to-end, có quy tắc (opinionated) trong năm 2012. Ember.js là một framework tương thích nghiêm ngặt các phiên bản cũ (backward compatible) và không có thay đổi đáng kể kể từ khi xuất hiện. Khi các framework khác cùng thời như Backbone.js, AngularJS đang giảm dần sự phổ biến, Ember.js vẫn là một framework đáng tin cậy, hiệu quả để đáp ứng nhu cần phát triển front-end hiện đại.
5 điểm nổi bật:
- Là opinionated Framework hiệu quả tập trung vào Quy ước vượt cấu hình (Convention over Configuration).
- Thay vì được hỗ trợ bởi một tập đoàn công nghệ, Ember được hỗ trợ bởi một số công ty, tập đoàn lớn như LinkedIn, Yahoo. Kết quả là, nó không bị điều khiển bởi nhu cầu riêng lẻ của một công ty.
- Thư viện dữ liệu của Ember là cách tốt nhất để truy cập dữ liệu từ nhiều nguồn cùng một lúc, thiết lập các mối quan hệ không đồng bộ.
- Trong Ember CLI, nó có CLI (Command Line Interface) tốt nhất trong số tất cả các JavaScript framework , giúp thiết lập và tạo ra tất cả các codes cần thiết với cấu trúc phù hợp, bao gồm tất cả các điều phụ thuộc.
- Trong phiên bản mới nhất – Ember octane, khái niệm HTML first and component first” được giới thiệu giúp cải thiện việc hỗ trợ cho state management và reactivity
Theo Top 10 JavaScript Frameworks to Learn in 2020
Bạn có biết?
tham gia cộng đồng ITguru trên Linkedin, Facebook và các kênh mạng xã hội khác có thể giúp bạn nhanh chóng tìm được những chủ đề phát triển nghề nghiệp và cập nhật thông tin về việc làm IT mới nhất
Linkedin Page:
Facebook Group:
cơ hội việc làm IT : ITguru.vn