Tại sao lại là Vuejs
Em đang bắt đầu chuyển sang làm việc với Vuejs. Về căn bản thì phần xử lí sự kiện em thấy không khác Jquery là mấy
. Khác biệt lớn nhất là Query is DOM-driven while Vue is data-driven
Vậy tại sao mọi người khuyến khích dùng VUe vậy ạ.
Các anh cho em hỏi Vue thì có gì khác hoặc tốt hơn Jquery không ? Có bài nào giải thích thì cho em xin link luôn ạ ? Em cảm ơn mọi người
3 CÂU TRẢ LỜI
Về căn bản thì phần xử lí sự kiện em thấy không khác Jquery là mấy
Anh thấy khác nhau nhiều mà Có thể phần em thấy nó không khác nhau là vì nó cùng là code ... javascript thôi, chứ thật sự thì 2 cái khác nhau nhiều.
jQuery là một library, tức khi code, em sẽ gọi hàm của jQuery để sự dụng,
VueJS là một framework, tức khi code, em sẽ viết theo quy chuẩn của VueJS quy định, để nó sử dụng code của em.
Query is DOM-driven while Vue is data-driven
Đúng như em nói, hiểu được cái này thì em sẽ thấy được cách tiếp cận của jQuery với VueJS khác nhau cơ bản như thế nào, và tại sao em không nên dùng jQuery.
jQuery là DOM-drive
, tức là các công việc của em khi xử lý tương tác của người dùng là xử lý với DOM
, làm việc với jQuery thì phải nói là DOM
everywhere, chỗ nào cũng thấy tên class với tên id =)) Có thể đây là một cách dễ tiếp cận, code cũng dễ hiểu, dễ đưa vào trong project, tuy nhiên code của em sẽ rối bung lên một cách rất nhanh chóng, khi project của em to ra, có nhiều tính năng mới được thêm vào. Hay nói cách khác, dùng toàn code jQuery sẽ khiến project của em rất khó maintain sau này. Chưa kể jQuery rất nặng nữa :v
VueJS (hay Angular, ReactJS) sinh ra dành để thiết kế frontend. Và như em nói, code với Vue là cách code data-driven
, tức em thao tác trên data (bằng javascript) là chủ yếu, chứ không phải quan tâm xem select cái DOM này như thế nào, add cái event kia ra sao ... Các công việc đó đã có framework lo cho rồi VueJS ra đời sau nên cũng tiếp thu được rất nhiều điểm hay, mới mẻ từ Angular và ReactJS, em cứ tìm hiểu thì sẽ thấy được cái hay, cái thú vị của nó
Vậy tóm tắt lại một chút cho các câu hỏi của em nhé
Vậy tại sao mọi người khuyến khích dùng Vue vậy ạ
jQuery không còn thích hợp với việc phát triển web hiện đại. Em nên từ bỏ việc dùng jQuery trong project của mình thì hơn.
Các anh cho em hỏi Vue thì có gì khác hoặc tốt hơn Jquery không ?
Vue nhẹ hơn, nhanh hơn, mạnh mẽ hơn, làm được nhiều việc hơn, mang nhiều cú pháp, tư duy mới mẻ hơn, giúp code trong sáng, dễ maintain hơn ...
Nếu có đem so sánh, thì nên so sánh VueJS với ReactJS, hay Angular thì hơn
Để tìm hiểu thêm về VueJS, em có thể tham khảo series Cùng học VueJS từ con số 0 hay Cùng nhau học VueJS trên Viblo xem sao
Em cảm ơn các anh ạ
Trước hết bạn nên phân biệt jQuery chỉ là một bộ thư viện javascript hỗ trợ trong quá trình code trong khi Vue.js thì là một framework (bao gồm rất nhiều thành phần con như: router, view), tuy nhiên, mặc định Vue chỉ đóng vai trò render View để hiển thị, các thành phần con này được tách biết hoàn toàn, nếu bạn cần dùng thì bạn cài thêm vào. Các view được phân tách thành các Component của bạn, tạo giao diện nhanh chóng, đơn giản, dễ đọc hiểu hơn là jQuery.
- Nói về jQuery, nó là một bộ thư viện javascript có cái thời mà các chuẩn ES5, ES6 đang phổ dụng ở hiện tại còn chưa ra đời. Khi mà jQuery chưa ra đời, để viết một hiệu ứng khi cuộn trang, cuộn về đầu trang hay gì đó ta phải viết cả nghìn dòng code. jQuery tập hợp rất nhiều các function hữu ích, giúp code gọn gàng hơn, giúp mọi người viết ít code hơn mà vẫn làm được các chức năng. Ngay cơ bản là select một element trong DOM dùng Javascript thuần, nó đã dài gấp đôi so với dùng jQuery, chưa nói đến các function làm chức năng khác phức tạp hơn.
// Javascript:
var element = document.getElementById('kim')
// jQuery:
var element = $('#kim')
jQuery như là một con đường tắt vào bấy giờ, bởi thế nên thời đấy (cũng phải 10 năm về trước) jQuery rất thông dụng. Và có rất nhiều các plugin được viết để tích hợp với jQuery, nhất là cách thư viện làm hiệu ứng cho website.
- Tới thời điểm hiện tại, jQuery vẫn được dùng rất rộng rãi , tuy nhiên, từ khi Node.js ra đời, mọi thứ đang dần thay đổi, khi mà các thư viện javascipt nhỏ gọn thực hiện cho các mục đích cụ thể xuất hiện rất nhiều và quản lý đơn giản qua NPM. Giúp bạn chỉ dùng những thứ bạn cần, thay vì một bộ javascript đồ sộ từ jQuery. VD như Vue.js, nó là framework giúp bạn làm ra các ứng dụng web. Mã nguồn khi viết dễ đọc hiểu, Vue quản lý các view trên virtual DOM được phân tách thành các component giúp bạn dễ dàng quản lý, thao tác, tái sử dụng. Nhưng thứ nhỏ lẻ khác bạn cần, có thể tìm các library nhỏ bé khác để dùng thay vì cài jQuery, rồi lại cài thêm một thự viện khác viết cho jQuery. Mọi thứ lúc đấy bạn sẽ thấy bị phụ thuộc quá nhiều với jQuery.
Em cảm ơn các anh ạ
Mọi người trả lời khá rõ ràng rồi, bạn có thể tìm hiểu thêm một số bài viết sau nếu cần
- https://scotch.io/bar-talk/vuejs-vs-jquery-use-cases-and-comparison-with-examples
- https://vuejs.org/v2/guide/comparison.html
- https://vuejs.org/v2/guide/reactivity.html
- Virtual DOM vs. Actual DOM
- https://swizec.com/blog/benchmarking-vue/swizec/8240
- https://medium.com/@darrenjennings/data-driven-vue-js-53e84f16e28f
- https://blog.rangle.io/how-to-create-data-driven-user-interfaces-in-vue/
Em cảm ơn các anh ạ