NÊN HỌC REACT HAY ANGULARJS?

Kamil Przeorski trả lời:

Nói chung, câu trả lời của tôi dựa trên kinh nghiệm mà tôi có được, vì tôi đã làm việc trên 15 ứng dụng ReactJS khác nhau, đã viết một ReactJS for Dummies: React Redux và tôi đã đào tạo các lập trình viên JS về công nghệ front-end. (Nhân tiện, kiểm tra GitHub của tôi, tôi có nhiều bộ dụng cụ bắt đầu cho ReactJS & React-Native. Mọi người liên hệ qua email trên hồ sơ GH của tôi. Tôi có thể cho thuê và luôn luôn sẵn lòng để giúp bạn pro-bono cho một dự án thú vị hoặc chỉ cần thêm tôi vào LinkedIn – tôi sẽ đồng ý đối với các yêu cầu kết nối mới).

Vào năm 2016, câu hỏi của Quora được xác định lại là: Tôi có nên học Angular2 hay ReactJS?

Công việc của bạn là gì? Mọi thứ tùy thuộc vào trường hợp của bạn:

A) Bạn hoàn toàn không có kinh nghiệm trong JavaScript?

B) Bạn có quen làm việc với JavaScript và jQuery?

C) Bạn đã quen thuộc với AngularJS chưa và có muốn chuyển sang phương pháp hiện đại hơn như Angular2 / ReactJS không?

D) Bạn quen thuộc với các Framework khác như EmberJS hay Backbone, nhưng bạn muốn chuyển sang React / Angular 2?

ĐIỀU QUAN TRỌNG LÀ: Tôi thừa nhận rằng bạn đã có một số kinh nghiệm trong việc viết văn bản VanillaJS / Backbone / Ember, vv web-apps (plain javascript) và bạn muốn mở rộng các kỹ năng của mình để tạo ra các ứng dụng SPA hiện đại hơn (trường hợp b. Và d. Đã đề cập ở trên). Câu trả lời dưới đây không dành cho những người muốn chuyển từ AngularJS sang Angular2.

1) Momentum và các xu hướng (dựa trên ReactJS và angular / angular2 sub-reddits):

REDDIT STATS OF: /r/reactjs/about/traffic:

bao5

REDDIT STATS OF: /r/angularjs/about/traffic:

bao6

Cả hai đồ thị cho thấy rõ rằng AngularJS đã trì trệ còn xu hướng phát triển tích cực của ReactJS thì không chậm lại. Nếu bạn kiểm tra các số liệu thống kê phụ của Angular2 reddit thì bạn sẽ thấy nó không phổ biến ở tất cả:

bao2

REDDIT STATS OF: / r / angular2 / about / traffic: Xin lưu ý rằng một vài ngày sau khi tôi tạo một ảnh chụp màn hình từ số liệu thống kê của Angular2 reddit nó đã được sửa bởi quản trị viên của Angular2 reddit – vì vậy thật không may là bạn sẽ không thể nhìn thấy số liệu thống kê thực tế.

2) Cạnh tranh trên thị trường việc làm (nhiều nhà phát triển Angular1 sẽ chuyển sang Angular2)

Phần đó khá rõ ràng: có hàng ngàn nhà phát triển Angular 1 có kinh nghiệm trong Angular 1 sẽ học Angular2. Thị trường việc làm cho người mới sẽ khó khăn hơn nhiều cho các nhà phát triển Angular2 so với ReactJS.

ReactJS khá mới mẻ nên khó có thể tìm được một nhà phát triển cho một công ty với hơn 1 năm kinh nghiệm của ReactJS. Phần lớn các nhà phát triển Angular1 sẽ bổ sung thêm kinh nghiệm làm việc của họ trong 3 năm trở lại mặc dù khung công việc Angular2 rất khác so với phiên bản version1.

Ngoài ra, nếu bạn sẽ kiểm tra Google Trends, bạn có thể thấy rằng AngularJS là kỹ năng hàng hoá hơn ReactJS:bao3

ReactJS phổ biến ở: San Francisco, Bangalore, Seattle, Sydney, Melbourne, Moscow, Tel Aviv (số liệu thống kê từ tháng 1 năm 2016)

AngularJS phổ biến ở: Chinchwad, Khu Phát triển Công nghiệp Mới Okhla, Gurgaon, Hyderabad, Bangalore, Chennai, Ahmedabad, Pune, Seoul, Tel Aviv (số liệu thống kê từ tháng 1 năm 2016)

Dựa trên thống kê React / Angular từ Google Xu hướng (“lợi ích khu vực”), bạn có thể tự mình đánh giá.

3) Sự nghiên cứu và mất bao lâu để trở nên hiệu quả (cần bao lâu để đào tạo một dev với các kỹ năng JS / jQuery để sử dụng một công cụ đúng cách và hiệu quả)

Kiến thức rất phổ biến trong cộng đồng JavaScript là Angular1 / Angular2 có API lớn hơn nhiều để học hơn ReactJS + FLUX (kết hợp).

Một CTO trung bình muốn một nhà phát triển javascript newbie (để ReactJS) có hiệu quả trong 1-2 tuần. Đối với Angular, nói chung đường cong học tập là dốc hơn nhiều, do đó có nghĩa là hiệu quả trong lĩnh vực chuyên môn đó khó hơn nhiều so với React.

4, Khả năng sử dụng lại/chuyển tiếp dài hạn các kỹ năng đã học:

AngularJS mang đến cho bạn THE ANGULAR-WAY của việc viết ứng dụng. Đối với Angular, bạn phải tìm hiểu thêm abstractions tùy chỉnh được cụ thể cho khuôn khổ này bởi chính nó Đường cong học tập là dốc hơn và những thứ bạn sẽ học không thể chuyển nhượng cho các khuôn khổ khác như AngularJS <-> Angular2 hoặc AngularJS <-> EmberJS vv

Nói cách khác, kinh nghiệm thu được trong AngularJS là khó chuyển nhượng. Ngoài ra bạn sẽ học TypeScript (Angular2), có thể không phải là quá phổ biến trong dài hạn (so với ES6 và ES7).

Một bản tóm tắt: vì những hạn chế của AngularJS, tôi khuyên bạn nên học ReactJS. Ưu đãi tuyệt vời là khi bạn quen thuộc với React, sau đó bạn có thể đạt được hiệu quả hơn trong phát triển điện thoại di động với React-Native (iOS và Android).

Tất nhiên có một số hạn chế của ReactJS – Tôi rất mong nhận được ý kiến của bạn về những điều đó.

CẬP NHẬT Tháng Tám năm 2016

Trên The Hacker News, sự nổi tiếng phản ứng trong WhoIsHiring đã vượt qua được của Angular. Bạn có thể tìm thấy nó trên đồ thị xu hướng dưới đây:

bao4

Đường màu đen là Angular.
Đường màu xanh nhạt là React.

P.S. Đừng quên theo dõi tôi trên Quora 😉 – chỉ có công nghệ và câu trả lời liên quan đến lập trình.

(Bài viết trên được dịch từ bài báo “Should I learn React or AngularJS?” trên trang web Quora)

Table of Contents

Bài viết liên quan