VUE(現(xiàn)代庫) VS jquery(傳統(tǒng)庫)

vue_vs_jq.png

眾所周知最近幾年前端發(fā)展非常的迅猛康愤,除各種框架如:backbone半开、angular、reactjs外枢冤,還有模塊化開發(fā)思想的實現(xiàn)庫:sea.js 鸠姨、require.js 、webpack以及 前端上線部署集成工具如: grunt淹真、gulp享怀、fis等。本文就新型mvvm庫:vue.js 與傳統(tǒng)庫jquery總結(jié)下兩者開發(fā)思路的區(qū)別趟咆。
jquery曾經(jīng)是web前端最流行的庫(現(xiàn)在也是)添瓷, 但無論國內(nèi)還是國外其使用率漸漸的被其他庫或框架占據(jù);隨著瀏覽器廠商對HTML5規(guī)范統(tǒng)一遵循以及ECMA6在瀏覽器端的實現(xiàn)值纱,jq的使用率將會越來越低鳞贷;(更詳細論述請參考賀老師的答案:jQuery會過時嗎? - JavaScript)以下是國外各類前端庫使用情況的小調(diào)查:

各類庫基本使用情況.jpg

當(dāng)然本文的重點不是討論JQ是否過時虐唠,自己用mvvm類框架一年有余搀愧;針對不少剛學(xué)Angular 或 vue 的同學(xué)在寫邏輯代碼時仍然使用jquery思維的情況, 本文做個小總結(jié)方便前端同學(xué)明白mvvm庫的開發(fā)思路及理清個人對兩類庫的理解疆偿,通過幾個常見場景梳理下傳統(tǒng)庫 jquery 現(xiàn)代新晉mvvm庫 vue 在實現(xiàn)相同邏輯時的思路區(qū)別咱筛; 與本人其他博文一樣,本文包括 代碼杆故、說明圖以及demo迅箩。

場景1: 注冊賬號:

本場景主要體現(xiàn)一個頁面多個步驟的邏輯處理, 類似的場景包括:購買流程处铛、商品購買預(yù)約流程等饲趋;
注冊賬號設(shè)計圖如下:

VUE_VS_JQ_1.jpg

1.1. JQ實現(xiàn)方式:
如貼代碼拐揭, 那本文將被代碼完全占據(jù), 所以代碼部分以鏈接方式附上奕塑; jq 的實現(xiàn)思路如下:選擇 流程dom對象堂污, 點擊按鈕隱藏當(dāng)前活動流程dom對象,顯示下一流程dom對象龄砰。
實現(xiàn)思路圖:

VUE_VS_JQ_2.jpg

代碼: 注冊流程小demo(jq)

1.2.VUE實現(xiàn)方式:

與jq不同 mvvm框架基本不操作dom節(jié)點盟猖, 雙向綁定使 dom節(jié)點跟變量綁定后, 通過修改變量的值控制dom節(jié)點的各類屬性换棚。所以其實現(xiàn)思路為: 視圖層使用一變量控制dom節(jié)點顯示與否扒披,點擊按鈕則改變該變量。
實現(xiàn)思路圖:

VUE_VS_JQ_3.jpg

代碼: 注冊流程小demo(vue)

場景2: 購物列表:

本場景主要體現(xiàn)界面交互較多的邏輯處理圃泡, 類似的場景包括: 用戶資料填寫(城市碟案、性別點選)、ERP工單申請(申請類型點選)等颇蜡;

PS: 實際項目中的電商網(wǎng)站不會將購物車价说、訂單結(jié)果單頁面顯示;因為這樣不好兼容也不安全风秤, 因而本例只是提供一種多交互的場景:
購物列表設(shè)計圖如下:

VUE_VS_JQ_4.jpg

2.1.JQ實現(xiàn)方式:
jquery 主要考慮 勾選鳖目、增加、減少缤弦、編輯 商品時對應(yīng)的邏輯领迈, 對這四種操作賦予不同的事件(點擊、失去焦點)碍沐;所有事件圍繞總價格變化狸捅, 故公共事件就是修改價格顯示的dom節(jié)點;
點擊“去支付”按鈕時累提, 遍歷商品列表節(jié)點然后顯示已勾選的商品尘喝;
實現(xiàn)思路圖:

VUE_VS_JQ_5.jpg

代碼:注冊流程小demo(jq)

2.2.VUE實現(xiàn)方式:
實現(xiàn)與上述jq一樣的功能, 在不操作dom節(jié)點的情況下vue如何實現(xiàn)呢斋陪?商品列表當(dāng)然是使用v-repeat 遍歷實現(xiàn)展示朽褪,主要難點在于如何交互: 勾選、增加无虚、減少商品數(shù)量時如何改變總價格缔赠? 這時就用到了對象數(shù)組的深度監(jiān)聽****(具體實現(xiàn)請參見代碼)
使用一新數(shù)組
存儲選中商品,點擊“去支付”按鈕時友题, 直接(v-repeat方式)顯示該新數(shù)組即可嗤堰。
實現(xiàn)思路圖:

VUE_VS_JQ_6.jpg

代碼:注冊流程小demo(vue)

場景3:表單提交:

本場景主要在于mvvm框架如何動態(tài)添加新dom節(jié)點;
之前有知友提過類似問題:
angular js的點擊一個li標(biāo)簽咆爽,觸發(fā)事件添加li標(biāo)簽或者添加div應(yīng)該怎么寫梁棠? - 前端開發(fā)
看到題目時本文場景3正在構(gòu)思,代碼尚未完成斗埂,所以沒來得及回答符糊;本文寫到該部分時,其問題已關(guān)閉呛凶! (?°?°?)?
高票答案已經(jīng)用文字清楚的說明該場景下的代碼思路:

著作權(quán)歸作者所有男娄。
商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處漾稀。
作者:

徐飛鏈接:angular js的點擊一個li標(biāo)簽模闲,觸發(fā)事件添加li標(biāo)簽或者添加div應(yīng)該怎么寫? - 徐飛的回答
來源:知乎
思維要轉(zhuǎn)變一下啊崭捍,用這類框架尸折,要這樣想,不考慮特殊情況:
1.所有的界面事件殷蛇,都是只去操作數(shù)據(jù)的
2.所有界面的變動实夹,都是根據(jù)數(shù)據(jù)自動綁定出來的
這樣,你用一個數(shù)據(jù)(根據(jù)實際情況粒梦,可能是數(shù)組亮航,界面上的li使用ng-repeat綁定這個數(shù)組,然后匀们,ng-click事件里缴淋,往這個數(shù)組中加一條數(shù)據(jù)),寫一下試試泄朴。上面那兩條要牢記重抖,尤其是以前用過jQuery的人,要時刻注意:界面不是被你的事件改變的祖灰,事件只需要改變數(shù)據(jù)仇哆,界面是數(shù)據(jù)的實時反饋。

VUE.JS 的代碼思路跟angular.js可以說一脈相承夫植, 廢話不多讹剔,栗子說明:
表單提交設(shè)計圖:

VUE_VS_JQ_7.jpg

3.1.JQ實現(xiàn)方式:
jq實現(xiàn)思路很簡單: 監(jiān)聽“新增”按鈕點擊事件,然后生成dom節(jié)點详民,插入到表單父類節(jié)點中延欠。點擊“提交”按鈕時,遍歷所有表單沈跨,從表單中獲取用戶填寫的數(shù)據(jù)即可由捎;
(PS: 本部分代碼中沒細化用戶交互,表單提交時判空處理饿凛、表單項手機格式狞玛、身份證格式校驗等均沒實現(xiàn))
實現(xiàn)思路圖:
VUE_VS_JQ_8.jpg

代碼:表單操作(jq)

3.2.VUE實現(xiàn)方式:
mvvm框架相對于jq給使用者感觸最深的或許就是表單软驰, 無論是vue還是angularjs在表單的處理上都有很多特定的官方指令;可以去官網(wǎng)感受下: vue表單用法心肪;
所以說mvvm框架最適合做erp類型單頁面應(yīng)用锭亏, 一來不用管seo, 二來開發(fā)效率極高;
vue實現(xiàn)思路跟場景2差不多硬鞍, v-repeat雙向綁定慧瘤;只要給綁定的數(shù)組添加新數(shù)據(jù);對應(yīng)的dom節(jié)點就會對應(yīng)變化固该, 點擊“提交”按鈕時锅减,直接展示該數(shù)組即可;
(表單操作時伐坏,vue對比jq優(yōu)勢就比較明顯了怔匣,少了操作dom代碼; 開發(fā)桦沉、維護效率都會明顯提高)
實現(xiàn)思路圖:

VUE_VS_JQ_9.jpg

代碼:表單操作(vue)

本文對應(yīng)github代碼
參考資料:
VUE api
jQuery API 1.11 中文文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末劫狠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子永部,更是在濱河造成了極大的恐慌独泞,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件苔埋,死亡現(xiàn)場離奇詭異懦砂,居然都是意外死亡,警方通過查閱死者的電腦和手機组橄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門荞膘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人玉工,你說我怎么就攤上這事羽资。” “怎么了遵班?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵屠升,是天一觀的道長。 經(jīng)常有香客問我狭郑,道長腹暖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任翰萨,我火速辦了婚禮脏答,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己殖告,他們只是感情好阿蝶,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著黄绩,像睡著了一般羡洁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宝与,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天焚廊,我揣著相機與錄音冶匹,去河邊找鬼习劫。 笑死,一個胖子當(dāng)著我的面吹牛嚼隘,可吹牛的內(nèi)容都是我干的诽里。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼飞蛹,長吁一口氣:“原來是場噩夢啊……” “哼谤狡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起卧檐,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤墓懂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后霉囚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捕仔,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年盈罐,在試婚紗的時候發(fā)現(xiàn)自己被綠了榜跌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡盅粪,死狀恐怖钓葫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情票顾,我是刑警寧澤础浮,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站奠骄,受9級特大地震影響霸旗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜戚揭,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一诱告、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦精居、人聲如沸锄禽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沃但。三九已至,卻和暖如春佛吓,著一層夾襖步出監(jiān)牢的瞬間宵晚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工维雇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留淤刃,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓吱型,卻偏偏與公主長得像逸贾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子津滞,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 徒傷悲 死去元知萬事空铝侵,(南宋陸游《示兒》) 此身飄泊各西東。(唐杜甫《清明二首》之一) 無限春愁莫相問触徐,(唐趙嘏...
    鄧文偉閱讀 603評論 0 0
  • “其實一個月以前咪鲜,我也還是學(xué)生啊撞鹉!” “好幸福疟丙,他們還是學(xué)生】谆觯” “好快啊隆敢,我們竟然畢業(yè)了〈藁郏” 畢業(yè)了拂蝎,工作后大家...
    熙惜閱讀 471評論 0 0
  • 劉玉婷 一個人的觀念決定一個人的格局,觀念就是一個人的想法惶室,假如你把美樂家想像成用產(chǎn)品温自,那你就是一個消...
    wu胡夢閱讀 2,840評論 0 1