jquery和vue對比

來源:互聯網
上載者:User

標籤:分享   角度   src   model   nts   build   組件   賦值   技術分享   

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>

 

 

 

 

 

 

 

情境二:控制按鈕的顯示隱藏,為vue和jquery兩種操作的代碼,我們從中可以看出vue只需要控制屬性isShow的值為true和false即可,而jquery則還是需要操作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" v-show="isShow">添加資料</button>        <button @click="showButton">隱藏按鈕</button>    </div></body><script src="https://unpkg.com/vue/dist/vue.js"></script><script>    new Vue({        el: ‘#app‘,        data: {            message: ["第1條資料","第2條資料"],            i:2,            isShow:true        },        methods:{            //向數組添加一條資料即可            add:function(){                this.i++                this.message.push("第"+this.i+"條資料")            },            //控制isShow的值即可            showButton:function(){                this.isShow=false;            }        }    })</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>        <button id="showButton">隱藏按鈕</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>")    });      //需要手動隱藏dom元素    $("#showButton").click(function(){        $("#add").hide()    })  }); </script>

 

 

 輸出結果:

 

 

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

        vue適用的情境:複雜資料操作的後台頁面,表單填寫頁面

        jquery適用的情境:比如說一些html5的動畫頁面,一些需要js來操作頁面樣式的頁面

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

 

5. 附上公司前端目錄結構,感興趣的可以分享代碼給大家看看 

 src代碼目錄包含assets靜態檔案,components vue組件檔案,plugins 外掛程式檔案(包含登入操作,http請求操作,過濾器,加解密操作,公用方法等),router 路由檔案,store vuex檔案,app.js vue相關配置,index.html首頁面

 

build目錄為webpack打包檔案,dist目錄為打包後產生的檔案,node_modules 引用的外部組件 

  

 

jquery和vue對比

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.