2

BOUNTY: Angular vs. React vs. Vue: Phát triển web

Trong thế giới phát triển ngày nay, các công nghệ đang phát triển rất nhanh và thay đổi nhanh chóng, với nhiều công cụ phát triển xuất hiện để giải quyết các vấn đề phát triển khác nhau. Trong cuộc thảo luận này, chúng tôi sẽ so sánh ba trong số các công nghệ phổ biến nhất để phát triển front-end - Angular, React và Vue. Chúng tôi đang thảo luận về sự so sánh này trên cơ sở kiến ​​trúc dự án hoặc từ quan điểm của nhà phát triển, người sẽ chọn công nghệ cho một dự án mới. Vì vậy, trước tiên chúng tôi cần đưa ra quyết định rõ ràng về việc chúng tôi muốn phát triển Ứng dụng Trang đơn (SPA) hay ứng dụng nhiều trang tiêu chuẩn.

Thư viện hay Khung?

Vì vậy, trước khi đi vào một so sánh sâu hơn, trước tiên chúng ta cần phải quyết định cái nào là bắt buộc - thư viện hoặc khung ? Trên thực tế, các thư viện được thiết kế để thực hiện một số nhiệm vụ cụ thể và chúng thường không phức tạp. Vì vậy, nếu chúng ta xây dựng ứng dụng của mình bằng các thư viện, thì chúng ta cần chọn một thư viện cho mọi tác vụ, cũng như để thiết lập các trình chạy tác vụ. Ưu điểm chính của thư viện là chúng tôi có toàn quyền kiểm soát ứng dụng. Nhưng vấn đề là phải mất nhiều thời gian hơn để thiết lập dự án.

Mặt khác, các khung được thiết kế để thực hiện những điều phức tạp hơn. Vì vậy, nếu chúng ta sử dụng một khung, thì nó sẽ tự động giải quyết nhiều vấn đề cho chúng ta. Mỗi khung công tác có một thiết kế hoặc cấu trúc được xác định trước, bao gồm nhiều thư viện và thiết lập các vận động viên. Ưu điểm chính của khung là quá trình phát triển nhanh hơn nhiều vì nó chứa tất cả các thư viện có thể mà chúng tôi yêu cầu để thực hiện các tác vụ khác nhau. Nhưng một khung có thiết kế chặt chẽ hơn một thư viện.

React là một thư viện để xây dựng giao diện người dùng trong khi Angular và Vue là các khung cho cùng một mục đích.  

Vòng đời và so sánh chiến lược

React, được phát hành lần đầu tiên vào tháng 3 năm 2013, được mô tả là một thư viện JavaScript. React được phát triển và duy trì bởi Facebook. Facebook sử dụng React cho nhiều thành phần trên một số trang, nhưng không phải để tạo một ứng dụng trang duy nhất. React cũng được sử dụng bởi Uber, Netflix, Twitter, Reddit, Udemy, Paypal, Walmart và những người khác.

Angular là một khung JavaScript dựa trên TypeScript. Nó được phát triển và duy trì bởi Google. Nó được phát hành lần đầu tiên vào tháng 10 năm 2010, nhưng đã trải qua một số bản cập nhật và hiện đang có trên Angular 6. Angular được mô tả như là một Khung MVW JavaScript siêu anh hùng.

Vue là một trong những khung JavaScript phát triển nhanh nhất trong thế giới ngày nay. Vue được mô tả là một MVVM trực quan, nhanh và có thể kết hợp được để xây dựng giao diện tương tác. Nó được phát hành lần đầu tiên vào tháng 2 năm 2014. Nó là sản phẩm trí tuệ của nhân viên cũ của Google Evan You. Năm 2016, Vue phiên bản 2 đã được phát hành. Nó được sử dụng bởi Alibaba, Yahoo, GitLab và những người khác.

Angular, React và Vue đều có sẵn theo Giấy phép MIT.

Phát triển cốt lõi

Theo như thảo luận ở trên, Angular và React được hỗ trợ và sử dụng bởi các công ty lớn như Facebook, Google, Whatsapp, v.v. Hiện tại, Google sử dụng Angular trong rất nhiều dự án của họ như AdWords UI (được triển khai với Angular và Dart). Trong khi đó Vue chủ yếu được sử dụng bởi các cá nhân trong các dự án quy mô nhỏ. Chúng ta hãy xem một số thống kê được tìm thấy trên GitHub:

  • Angular có hơn 25.000 ngôi sao và 463 người đóng góp.

  • React có hơn 70.000 ngôi sao và hơn 1.000 người đóng góp.

  • Vue có gần 60.000 ngôi sao và chỉ có 120 người đóng góp.

Mềm dẻo

Chúng tôi có thể bắt đầu công việc phát triển của mình với React hoặc Vue bằng cách thêm thư viện JavaScript vào ứng dụng nguồn. Nhưng điều này là không thể với Angular vì nó sử dụng TypeScript. Vì, trong thế giới phát triển web ngày nay, chúng ta đang tiếp cận nhiều hơn với các dịch vụ siêu nhỏ và ứng dụng vi mô, React và Vue cho chúng ta nhiều quyền kiểm soát hơn về kích thước của một ứng dụng bằng cách chỉ chọn những thứ thực sự cần thiết. Angular hoạt động tốt nhất như là một khung cho các ứng dụng dựa trên SPA.

Hiệu suất

Trong trường hợp kích thước của thư viện hoặc khung, Angular khá lớn đối với các tùy chọn khác. Kích thước tệp được nén là 143k, so với 23k cho Vue và 43k cho React. Cả React và Vue đều sử dụng Virtual DOM giúp cải thiện hiệu suất trong DOM của trình duyệt. Trong phân tích tổng thể, Vue có hiệu suất tuyệt vời và phân bổ bộ nhớ sâu nhất trong ba. Nhưng cả ba tùy chọn này thực sự rất gần nhau về hiệu suất.

Nếu bạn muốn kiểm tra nguồn, thì bạn có thể truy cập kho GitHub bên dưới:

Phần kết luận

React, Angular và Vue đều rất hữu ích cho sự phát triển và không ai trong số họ rõ ràng tốt hơn những người khác. Vì vậy, bên dưới tôi đã đưa ra một bảng sẽ cho biết khi nào nên chọn bảng nào:

Góc

Phản ứng

Vue

Muốn sử dụng TypeScript

Muốn sử dụng cách tiếp cận dựa trên JavaScript.

Đường cong học tập dễ nhất trong JavaScript.

Muốn sử dụng OOPS (Lập trình hướng đối tượng)

Muốn sử dụng hệ sinh thái lớn.

Làm việc trên các dự án nhỏ.

Muốn sử dụng Khung dựa trên cấu trúc

Muốn linh hoạt.

Nhóm phát triển chứa một số lượng nhỏ các nhà phát triển.

Muốn xây dựng một ứng dụng lai

Muốn xây dựng một ứng dụng bản địa.


Đội ngũ phát triển có một số lượng lớn các nhà phát triển.

Nhóm phát triển chứa một số lượng lớn các nhà phát triển.


Nếu bạn muốn tách HTML cho mục đích thiết kế.

Nếu bạn muốn giữ một tệp duy nhất cho mã JavaScript và mã HTML.

Nếu bạn muốn tách HTML cho mục đích thiết kế.

Nếu bạn vẫn không thể quyết định bạn cần chọn cái nào, trước tiên tôi khuyên bạn nên tìm hiểu React, sau đó là Vue và sau đó là Angular. Bởi vì hai cái đầu tiên chủ yếu dựa trên JavaScript và cái thứ ba hoàn toàn dựa trên TypeScript.

|