#Notes: Có sử dụng framework frontend nào chưa? Dùng framework đó để làm qua các chức năng gì? Có biết giữa angular/react hoặc vuejs có gì khác nhau không? Thích framework nào nhất và tại sao?

 React

React là một thư viện JavaScript, được Facebook ra mắt từ năm 2013.
Đây là một thư viện tuyệt vời để xây dựng các ứng dụng web lớn, nơi dữ liệu có thể thay đổi thường xuyên.

Ưu điểm:
- Dễ học, nhờ thiết kế đơn giản, sử dụng JSX (một cú pháp giống như HTML) để tạo khuôn mẫu.
- Tốc độ ứng dụng vô cùng ấn tượng. Tất cả là nhờ kỹ thuật DOM ảo của React và tối ưu hóa rendering.
- Hỗ trợ render phía máy chủ rất tốt. Điều này làm cho React trở thành một framework mạnh mẽ cho các ứng dụng tập trung vào nội dung.
- Hỗ trợ tạo ứng dụng Progressive Web App (PWA) nhanh chóng. Đơn giản chỉ cần câu lệnh: “creat-react-app”.
- Data-binding một chiều, có nghĩa là ít side effects không mong muốn.
- Mô hình Redux: một mô hình quản lý trạng thái ứng dụng cực tốt.
- React theo trường phái lập trình hàm (Functional Programming), tạo mã dễ kiểm tra và có khả năng tái sử dụng cao.
- Ngoài ra, còn một ưu điểu cực lớn nữa, đó là nếu bạn biết về React thì bạn sẽ dễ dàng học thêm React Native.

Nhược điểm
- Chính vì sự phát triển siêu nhanh của ReactJS mà tài liệu hướng dẫn chính chủ không theo kịp. Hầu hết các bài viết hướng dẫn trên mạng bị lỗi thời. Điều này gây không ít khó khăn cho các dev nhà mình.
- React đang đi theo hướng lập trình hàm, điều này sẽ gây đôi chút khó chịu và ác cảm với các dev đã quen với lập trình hướng đối tượng (OOP).
- Việc trộn giữa templating với logic ứng dụng (JSX) có thể gây nhầm lẫn cho một số nhà phát triển lúc đầu.

Angular
Angular là một JavaScript MVVM framework, được ra mắt từ 2009.
Đây là một JS framework nổi đình đám trong giới front-end, giúp xây dựng các ứng dụng web có tính tương tác cao.

Ưu đểm:
- Hỗ trợ trợ TypeScript: Angular được tạo ra để được sử dụng cùng với TypeScript. Mà TypeScript thì bạn biết rồi đấy, nó mang ưu điểm của cả Js và các ngôn ngữ OOP.
- Data-binding: Nó tự động đồng bộ hóa dữ liệu giữa thành phần model và view.
- Tài liệu hướng dẫn chi tiết và đầy đủ. Với tài liệu hướng dẫn chi tiết từ chính nhà cung cấp sẽ giúp người mới tìm hiểu Angular nhanh chóng tiếp cận và làm chủ framework này. Nhờ đó mà giảm thời gian training, thảo luận với đồng nghiệp… khi mà trên trang chủ của họ có tất cả.
- MVVM (Model-View-ViewModel): cho phép bạn chia dự án thành nhiều phần độc lập với nhau.
- Dependency Injection: Nó cho phép bạn làm giảm sự phụ thuộc giữa các Object với nhau. Các object càng độc lập với nhau càng tốt, mục đích để sau này nâng cấp, sửa đổi… sẽ hạn chế ảnh hưởng tới các object khác.
- Cấu trúc và kiến trúc của Angular được tạo ra đặc biệt cho khả năng mở rộng dự án lớn.

Nhược điểm:
- Angular khá là đa dạng các thành phần/khái niệm như Injectables, Components, Pipes, Modules… Điều này khiến cho việc tìm hiểu trở nên khó khăn hơn một chút so với React và Vuejs
- Theo đánh giá hiệu năng thì Angular có vẻ chậm hơn React và Vuejs.

Vue
Vue.js là một framework JavaScript, được ra mắt vào năm 2013, hoàn toàn phù hợp để tạo giao diện người dùng có khả năng thích ứng cao và các ứng dụng trang đơn phức tạp.

Ưu điểm:
- Empowered HTML: điều này có nghĩa là Vue.js có nhiều đặc điểm tương tự với Angular. Chính vì thế nó có thể giúp tối ưu hóa việc xử lý các khối HTML khi sử dụng các thành phần khác nhau.
- Tài liệu hướng dẫn chi tiết: Nhờ có tài liệu chi tiết mà việc học tập trở nên nhanh chóng, tiết kiệm thời gian phát triển ứng dụng chỉ sử dụng kiến thức cơ bản về HTML và JavaScript.
- Khả năng tương thích. Việc chuyển sang sử dụng Vuejs từ các Js framework tương đối nhanh chóng.
- Khả năng tích hợp tốt.js có thể được sử dụng cho việc xây dựng cả ứng dụng (single-page applications) phức tạp hoặc chỉ một phần của ứng dụng. Điều này cho phép bạn cập nhật, nâng cấp ứng dụng mà không ảnh hưởng quá nhiều tới hệ thống hiện tại.
- Large scaling: js có thể phát triển templates có khả năng tái sử dụng cao.
- Kích thước nhỏ. Toàn bộ thư viện js chỉ có kích thước 20KB.


Nhược điểm:
Thiếu tài nguyên: Vuejs vẫn có thị phần khá nhỏ so với React hoặc Angular. Điều đó có nghĩa là việc chia sẻ kiến thức trong cộng đồng vẫn còn khá ít. Nếu bạn gặp khó khăn hoặc phát sinh bug thì chỉ có tác giả là nhiệt tình với bạn thôi.


Share:

0 nhận xét