vue所提倡的數(shù)據(jù)驅(qū)動視圖和jQuery的直接操作DOM在編寫頁面時的思路是完全不同的。雖然兩種思路是完全不同的,但也不能說是不能一起用的,在某些沒有辦法的情況下(例如需要操作dom的情況下),把jQuery和vue用在一塊是完全沒問題的,當(dāng)然把這兩種技術(shù)用在一起是肯定不會出現(xiàn)在最佳實踐里的,因為確實沒有特殊情況的話,這樣用就是有點自找麻煩了。
成都創(chuàng)新互聯(lián)公司專注于南崗網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供南崗營銷型網(wǎng)站建設(shè),南崗網(wǎng)站制作、南崗網(wǎng)頁設(shè)計、南崗網(wǎng)站官網(wǎng)定制、小程序定制開發(fā)服務(wù),打造南崗網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供南崗網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
以下是對傳統(tǒng)jq與目前最熱的vue進(jìn)行的技術(shù)特性對比:
1、精力集中。
Jq偏重于對dom的操作,由它的函數(shù)就很容易看出來,$()、parent()、find()。我們用jq的時候經(jīng)常要去考慮怎么去渲染數(shù)據(jù),怎么從視圖中取到數(shù)據(jù),操作數(shù)據(jù)前必須對dom節(jié)點進(jìn)行選取修改賦值等操作,這其實分散了我們的本該放在業(yè)務(wù)邏輯上的精力。而Vue則是基于MVVM思想,數(shù)據(jù)驅(qū)動,雙向綁定,只需要定義好渲染規(guī)則,如果數(shù)據(jù)發(fā)生改變,vue會幫我們重新渲染整個頁面,所以我們只需將注意力放在數(shù)據(jù)操作上就可以了。
2、代碼結(jié)構(gòu)。
如果你用jq沒有好的代碼架構(gòu),很容易就回出現(xiàn)一種情況就是:js里寫著html元素代碼,而且可能會遍布很多地方。因為增刪改查你都需要對dom進(jìn)行操作,這里甚至可能會寫多了些冗余代碼。代碼架構(gòu)好一點的,可能會寫成一種簡版框架(即有專門的渲染函數(shù),增刪改查都會調(diào)用這個函數(shù)),依然是全域的,需要閉包。而vue就沒有這個問題方法全部寫在methods中,提供多種鉤子函數(shù)對頁面渲染過成進(jìn)行精準(zhǔn)操作。
3、操作性。
用jq去操作dom實際上是蠻麻煩的。比如說又個對象數(shù)組已經(jīng)渲染成表格了,這時你需要修改某一個id的那個對象的數(shù)據(jù)行,jq的話最麻煩的做法就是在遍歷里面先拿到id,檢查相等,相等的話,用index去拿到要改的那個dom,再重新渲染。而用vue的話,可以直接修改數(shù)據(jù)就可以了,而且你甚至可以用Array.map Array.filter ,方便快捷,提升開發(fā)效率
4、模塊化。
目前無論前端還是后端開發(fā),越來越傾向于模塊化組件化,以求降低不同模塊,不同功能區(qū)塊之間的耦合度,便于后期業(yè)務(wù)的修改與拓展,vue完全cover上述特性,而使用jq的時候,如果你的js牛逼轟轟的寫得已經(jīng)超長了,然后你又覺得需要分下模塊了,這時你有兩選擇,
1是用seajs,requirejs等,
2是用原生的import去管理你的代碼。說實話,我沒怎么用過requirejs去分模塊,可能是我壓根就想沒到這些js要怎么分。
5、單頁面實現(xiàn)。
單頁面的實現(xiàn)原理估計大家都很熟了,一般是幾個div在來回切換。如果一開始已經(jīng)寫好html,再來回切的話,html是太長了。如果用js去寫又拼的很麻煩。如果你想用jq、原生實現(xiàn)頁面切換,我能想到比較好的方式是用模版引擎...嗎?但其實單頁面的實現(xiàn)我感覺沒那么簡單,你不單單要考慮html能否單獨寫出來,還要考慮js需不需要按需加載,路由需不需要等等。。。用vue就不需要煩這些東西,vue自動構(gòu)建單頁應(yīng)用,使用router模擬跳轉(zhuǎn)。
6、組件的復(fù)用。
用vue最爽的莫過于使用別人寫好的組件。目前vue的生態(tài)已經(jīng)非常龐大,主流的組件庫有element-ui,iview,使用主流的組件庫不僅避免了我們重復(fù)造輪子,而且方便新員工快速接手項目,某個大神的組件總結(jié):;app=news_articlegroup_id=6718405521088446988req_id=20190730093011010018026159736CF92,其實如果項目大的時候,有些組件(一些功能和視圖的集合)可能會復(fù)用。這些相對于jq就是插件了,個人不喜歡script引入插件(任性)
7、性能。
vue使用了虛擬dom技術(shù),能夠減少 dom的操作,能提高一定的效率。
我得出的結(jié)論是各有千秋,比如jquery做效果很棒,vue解析數(shù)據(jù)渲染頁面速度快,如果你做的是分離式開發(fā),無疑你需要選擇數(shù)據(jù)解析更強(qiáng)的vue,但是如果你做的是傳統(tǒng)的mvc不分離開發(fā),那么建議你選擇jquery。
一、主體不同
1、vue.js:是一套用于構(gòu)建用戶界面的漸進(jìn)式JavaScript框架。
2、jquery:是一個快速、簡潔的JavaScript框架,是繼Prototype之后又一個優(yōu)秀的JavaScript代碼庫。
二、特點不同
1、vue.js:Vue 被設(shè)計為可以自底向上逐層應(yīng)用。Vue 的核心庫只關(guān)注視圖層,方便與第三方庫或既有項目整合。
2、jquery:具有獨特的鏈?zhǔn)秸Z法和短小清晰的多功能接口;具有高效靈活的css選擇器,并且可對CSS選擇器進(jìn)行擴(kuò)展;擁有便捷的插件擴(kuò)展機(jī)制和豐富的插件。
三、優(yōu)勢不同
1、vue.js:目標(biāo)是通過盡可能簡單的 API 實現(xiàn)響應(yīng)的數(shù)據(jù)綁定和組合的視圖組件。
2、jquery:提供了對基本JavaScript結(jié)構(gòu)的增強(qiáng),比如元素迭代和數(shù)組處理等操作。
參考資料來源:百度百科-jQuery
參考資料來源:百度百科-Vue.js