天天看點

jquery和vue對比

前言:很多人說jquey和vue沒有什麼可比的,應該和Angular,React來比吧,我到覺得他們倒沒有多大的可比性,都是基于mvvm思想設計的架構,無非就是實作的方式不一樣,在不同場景下性能上會有一些差異。然而從jquery到vue或者說是到mvvm的轉變則是一個思想想的轉變,是将原有的直接操作dom的思想轉變到操作資料上去,難道不是一個根本性的改變嗎?

1.jquery介紹:想必大家都用過jquery吧,這個曾經也是現在依然最流行的web前端js庫,可是現在無論是國内還是國外他的使用率正在漸漸被其他的js庫所代替,随着浏覽器廠商對HTML5規範統一遵循以及ECMA6在浏覽器端的實作,jquery的使用率将會越來越低

2.vue介紹:vue是一個興起的前端js庫,是一個精簡的MVVM。從技術角度講,Vue.js 專注于 MVVM 模型的 ViewModel 層。它通過雙向資料綁定把 View 層和 Model 層連接配接了起來,通過對資料的操作就可以完成對頁面視圖的渲染。當然還有很多其他的mvmm架構如Angular,React都是大同小異,本質上都是基于MVVM的理念。 然而vue以他獨特的優勢簡單,快速,組合,緊湊,強大而迅速崛起 

3.vue和jquey對比 

jQuery是使用選擇器($)選取DOM對象,對其進行指派、取值、事件綁定等操作,其實和原生的HTML的差別隻在于可以更友善的選取和操作DOM對象,而資料和界面是在一起的。比如需要擷取label标簽的内容:

$("lable").val();

,它還是依賴DOM元素的值。 

Vue則是通過Vue對象将資料和View完全分離開來了。對資料進行操作不再需要引用相應的DOM對象,可以說資料和View是分離的,他們通過Vue對象這個vm實作互相的綁定。這就是傳說中的MVVM。

4.舉例說明

場景一:清單添加一個元素,下圖為vue和jquery兩種操作的代碼,我們從中可以看出vue隻需要向資料message裡面push一條資料即可完成添加一個li标簽的操作,而jquery則需要擷取dom元素節點,并對dom進行添加一個标簽的操作,如果dom結構特别複雜,或者添加的元素非常複雜,則代碼會變得非常複雜且閱讀性低

vue:

<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
</head>

<body>
    <div id="app">
        <ul>
            <!--根據數組資料自動渲染頁面-->
            <li v-for="item in message">{{item}}</li>
        </ul>
        <button @click="add">添加資料</button>
    </div>
</body>

<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script>
    new Vue({
        el: '#app',
        data: {
            message: ["第1條資料","第2條資料"],
            i:2
        },
        methods:{
            //向數組添加一條資料即可
            add:function(){
                this.i++
                this.message.push("第"+this.i+"條資料")
            }
        }
    })
</script>      

jquery:

<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
</head>

<body>
    <div id="app">
        <ul id="list">
            <li>第1條資料</li>
            <li>第2條資料</li>
        </ul>
        <button id="add">添加資料</button>
    </div>

</body>

<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script>
    $(document).ready(function() {  
    var i=2;
    $('#add').click(function() { 
       i++; 
       //通過dom操作在最後一個li元素後手動添加一個标簽
      $("#list").children("li").last().append("<li>第"+i+"條資料</li>")
    });  
  }); 
</script>      

4.總結:内容講的比較淺,主要就是分析一下vue和jquey對比的差別,上面兩個例子隻是做了一個簡單的說明,然而vue能解決的問題遠比這些要多的多,複雜的多。

vue适用的場景:複雜資料操作的背景頁面,表單填寫頁面

jquery适用的場景:比如說一些html5的動畫頁面,一些需要js來操作頁面樣式的頁面

然而二者也是可以結合起來一起使用的,vue側重資料綁定,jquery側重樣式操作,動畫效果等,則會更加高效率的完成業務需求

繼續閱讀