Lý Do nào khiến Vue.js “Ăn Đứt” React.js?

26645

Là người dùng Angular 1.x lâu năm, tôi cảm thấy rất tò mò trước sự phổ biến của React trong cộng đồng JS. Nhưng dù vậy, khi phải đứng trước sự chọn lựa giữa Vue.js và React.js , tôi đã quyết định tiến tới Vue.js vì nhiều lý do.

Theo tôi, Vue.js là phương tiện tuyệt vời và có thể giúp bạn tìm hiểu cấu trúc của React tốt hơn (chí ít là so với React.js). Và với những lý do ưu việt dưới đây, tôi tin rằng bạn cũng sẽ yêu thích Vue như tôi, và đảm bảo, sẽ không lãng phí tý thời gian nào cả với công cụ này.

Bạn có ý muốn hướng đến nền tảng nào?

  • React lý tưởng cho bất cứ nền tảng nào. React giúp bạn lập trình thỏa thích cho cả web lẫn native. Như vậy, bạn hoàn toàn có sự tự do linh hoạt với Giao Diện trong bất kỳ tính huống nào. React còn đang tiếp tục lấn sân sang sân chơi thực tế ảo.
  • Vue 2.0 cũng đang hướng đến môi trường native. Evan và nhóm của anh đang làm việc với Alibaba để cho ra đời Weex, từ đó mở ra khả năng render native có thể “đọ sức” được với React Native. Tuy Vue 2.0 hiện chỉ tập trung vào web, nhưng vẫn được viết tối ưu để “tạo nền” hỗ trợ các nền tảng khác trong tương lai. Theo bài blog gần đây nhất về Vue của Evan, 2017 sẽ là một năm trọng đại cho Weex.

Bạn muốn thực hành sớm chứ?

Tại sao không phải ngày hôm nay, mà lại chờ cả chục tuần?

  • React hơi khó học hơn. Tài liệu và thuật ngữ sử dụng cho một số khái niệm trong React tỏ ra khá thiếu thống nhất và lộn xộn. Còn với Hướng Dẫn của Vue, các tên riêng, quá trình cài đặt,… rất thân thiện và thống nhất với các chuẩn chung như HTML, CSS, ES6,… Và hơn nữa, cả hai framework này đều có cộng đồng hỗ trợ phát triển mạnh mẽ và rất nhiều nguồn tài nguyên hướng dẫn đa dạng phong phú. (Tài nguyên: React / Vue)
  • Thách thức lớn nhất tôi từng gặp ở cả hai công cụ là khái niệm build toolchain: Webpack, JSX , plugins cho text editor…
  • Tuy nhiên, Vue không yêu cầu Webpack, hay bất cứ yêu cầu tương tự nào khác. Bạn có thể viết ngay ứng dụng ES5, và thêm thư viện nhanh thông qua gói quản lý hoặc CDN ưa thích của mình. Như vậy, bạn có thể “đùa vọc” với Vue trong CodePen và các môi trường chia sẻ code ngay lập tức.
  • React vừa giới thiệu create-react-app cho người mới bắt đầu. Bạn có thể xem đây như command-line tool trong Vue.

    Tham dự cuộc chiến vương quyền

Trong thế giới chuyên nghiệp…

  • Vue đã và đang được những cái tên lớn như GitLab, Laravel, PageKit,… sử dụng.
  • Vue vẫn còn khá “lạ lẫm” với chu kỳ lập trình của chính tôi. Tuy nhiên, nhiều lập trình viên các ở công ty tôi cũng đã bắt đầu áp dụng Vue, sau khi nặng nề cân nhắc Angular và React.
  • React rất phỏng biến và có tuổi đời cao hơn nhiều. Nên có thể nhiều doanh nghiệp sử dụng React hơn, bạn cần chú ý điểm này nếu hiện đang tìm việc.
  • Trong vài tháng vừa qua, tôi thấy rất nhiều bài báo với tiêu đề đại loại như “Tại sao tôi chọn Vue.JavaScript thay vì React và Angular…” Vue.js đang dành được sự chú ý nhanh chóng, khi ngày càng nhiều người nhận ra công cụ này dễ sử dụng như thế nào.

Tiếp tục fanboy-ing với Vue…

State management và routing đã được thêm vào!

Bạn đã biết về Flux/Redux, vậy Vue cho bạn thêm điều gì:

  • Vuex là bộ thực thi giống Flux/Redux/Elm dành riêng cho Vue, được đong đo đặc biệt để dùng riêng cho hệ thống phản ứng của Vue. Hệ thống đột biến (mutation), bộ nhận (getter) và hành động (action) của công cụ có sự hài hòa tuyệt đối và rất dễ tích hợp nhanh vào các component bạn đang có. Tuy nhiên, Nếu bạn thích dùng Redux hơn, Vue cũng rất thoải mãi với Revue. Dù với công cụ nào đi nữa, khả năng sử dụng các hệ thống quản lý state cũng sẽ là kỹ năng đắt giá.
  • Nếu bạn cần URL routing và param, vue-router là công cụ cực kỳ đơn giản và mạnh mẽ.

Một số điểm đáng lưu ý khác…

  • Documentation của Vue hay như mơ. Bộ Guide và API refrence của Vue cực kỳ chi tiết và dễ hiểu.
  • Viết component đơn file trong Vue mang lại cảm giác rất tự nhiên và thậm chí còn “gây nghiện”. Trải nghiệm yêu cầu có Webpack, nhưng đừng lo, Vue có cung cấp bộ command-line tool để giúp bạn tạo các project tối cơ bản với rất ít bước setup. Nếu bạn thích Browserify, không thành vấn đề. Đặc biệt, bạn thậm chí còn có thể tự viết  CLI template của riêng mình nếu muốn! Những template sẵn có cũng khá linh hoạt.
  • Vue 2.0 có hỗ trợ server-side rendering, trợ giúp đắc lực với SEO, và giúp cả những người đã vô hiệu hó Javascript xem được page của bạn.

Cuối cùng, điều thôi thúc tôi liên tục quay lại với Vue.js chính là cộng đồng tuyệt cú mèo, sự chuyên nghiệp của Evan và lực lượng đóng góp, khả năng sử dụng dễ dàng, và sự thống nhất đơn giản với các chuẩn Web Components. Tôi rất tự hào vì đã có cơ hội được sử dụng và góp phần mình vào sự thành công chớm nở của dự án tuyệt vời này.

Techtalk via Quora