VUE(现代库) VS jquery(传统库)

vue_vs_jq.png

众所周知最近几年前端发展非常的迅猛,除各种框架如:backbone、angular、reactjs外,还有模块化开发思想的实现库:sea.js 、require.js 、webpack以及 前端上线部署集成工具如: grunt、gulp、fis等。本文就新型mvvm库:vue.js 与传统库jquery总结下两者开发思路的区别
jquery曾经是web前端最流行的库(现在也是), 但无论国内还是国外其使用率渐渐的被其他库或框架占据;随着浏览器厂商对HTML5规范统一遵循以及ECMA6在浏览器端的实现,jq的使用率将会越来越低;(更详细论述请参考贺老师的答案:jQuery会过时吗? - JavaScript)以下是国外各类前端库使用情况的小调查:

各类库基本使用情况.jpg

当然本文的重点不是讨论JQ是否过时,自己用mvvm类框架一年有余;针对不少刚学Angular 或 vue 的同学在写逻辑代码时仍然使用jquery思维的情况, 本文做个小总结方便前端同学明白mvvm库的开发思路及理清个人对两类库的理解,通过几个常见场景梳理下传统库 jquery 现代新晋mvvm库 vue 在实现相同逻辑时的思路区别; 与本人其他博文一样,本文包括 代码说明图以及demo

场景1: 注册账号:

本场景主要体现一个页面多个步骤的逻辑处理, 类似的场景包括:购买流程、商品购买预约流程等;
注册账号设计图如下:

VUE_VS_JQ_1.jpg

1.1. JQ实现方式:
如贴代码, 那本文将被代码完全占据, 所以代码部分以链接方式附上; jq 的实现思路如下:选择 流程dom对象, 点击按钮隐藏当前活动流程dom对象,显示下一流程dom对象。
实现思路图:

VUE_VS_JQ_2.jpg

代码: 注册流程小demo(jq)

1.2.VUE实现方式:

与jq不同 mvvm框架基本不操作dom节点, 双向绑定使 dom节点跟变量绑定后, 通过修改变量的值控制dom节点的各类属性。所以其实现思路为: 视图层使用一变量控制dom节点显示与否,点击按钮则改变该变量。
实现思路图:

VUE_VS_JQ_3.jpg

代码: 注册流程小demo(vue)

场景2: 购物列表:

本场景主要体现界面交互较多的逻辑处理, 类似的场景包括: 用户资料填写(城市、性别点选)、ERP工单申请(申请类型点选)等;

PS: 实际项目中的电商网站不会将购物车、订单结果单页面显示;因为这样不好兼容也不安全, 因而本例只是提供一种多交互的场景:
购物列表设计图如下:

VUE_VS_JQ_4.jpg

2.1.JQ实现方式:
jquery 主要考虑 勾选、增加、减少、编辑 商品时对应的逻辑, 对这四种操作赋予不同的事件(点击、失去焦点);所有事件围绕总价格变化, 故公共事件就是修改价格显示的dom节点;
点击“去支付”按钮时, 遍历商品列表节点然后显示已勾选的商品;
实现思路图:

VUE_VS_JQ_5.jpg

代码:注册流程小demo(jq)

2.2.VUE实现方式:
实现与上述jq一样的功能, 在不操作dom节点的情况下vue如何实现呢?商品列表当然是使用v-repeat 遍历实现展示,主要难点在于如何交互: 勾选、增加、减少商品数量时如何改变总价格? 这时就用到了对象数组的深度监听****(具体实现请参见代码)
使用一新数组
存储选中商品,点击“去支付”按钮时, 直接(v-repeat方式)显示该新数组即可。
实现思路图:

VUE_VS_JQ_6.jpg

代码:注册流程小demo(vue)

场景3:表单提交:

本场景主要在于mvvm框架如何动态添加新dom节点;
之前有知友提过类似问题:
angular js的点击一个li标签,触发事件添加li标签或者添加div应该怎么写? - 前端开发
看到题目时本文场景3正在构思,代码尚未完成,所以没来得及回答;本文写到该部分时,其问题已关闭! (๑°ㅁ°๑)‼
高票答案已经用文字清楚的说明该场景下的代码思路:

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:

徐飞链接:angular js的点击一个li标签,触发事件添加li标签或者添加div应该怎么写? - 徐飞的回答
来源:知乎
思维要转变一下啊,用这类框架,要这样想,不考虑特殊情况:
1.所有的界面事件,都是只去操作数据的
2.所有界面的变动,都是根据数据自动绑定出来的
这样,你用一个数据(根据实际情况,可能是数组,界面上的li使用ng-repeat绑定这个数组,然后,ng-click事件里,往这个数组中加一条数据),写一下试试。上面那两条要牢记,尤其是以前用过jQuery的人,要时刻注意:界面不是被你的事件改变的,事件只需要改变数据,界面是数据的实时反馈。

VUE.JS 的代码思路跟angular.js可以说一脉相承, 废话不多,栗子说明:
表单提交设计图:

VUE_VS_JQ_7.jpg

3.1.JQ实现方式:
jq实现思路很简单: 监听“新增”按钮点击事件,然后生成dom节点,插入到表单父类节点中。点击“提交”按钮时,遍历所有表单,从表单中获取用户填写的数据即可;
(PS: 本部分代码中没细化用户交互,表单提交时判空处理、表单项手机格式、身份证格式校验等均没实现)
实现思路图:
VUE_VS_JQ_8.jpg

代码:表单操作(jq)

3.2.VUE实现方式:
mvvm框架相对于jq给使用者感触最深的或许就是表单, 无论是vue还是angularjs在表单的处理上都有很多特定的官方指令;可以去官网感受下: vue表单用法
所以说mvvm框架最适合做erp类型单页面应用, 一来不用管seo, 二来开发效率极高;
vue实现思路跟场景2差不多, v-repeat双向绑定;只要给绑定的数组添加新数据;对应的dom节点就会对应变化, 点击“提交”按钮时,直接展示该数组即可;
(表单操作时,vue对比jq优势就比较明显了,少了操作dom代码; 开发、维护效率都会明显提高)
实现思路图:

VUE_VS_JQ_9.jpg

代码:表单操作(vue)

本文对应github代码
参考资料:
VUE api
jQuery API 1.11 中文文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,039评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,223评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,916评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,009评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,030评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,011评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,934评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,754评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,202评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,433评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,590评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,321评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,917评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,568评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,738评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,583评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,482评论 2 352

推荐阅读更多精彩内容

  • 徒伤悲 死去元知万事空,(南宋陆游《示儿》) 此身飘泊各西东。(唐杜甫《清明二首》之一) 无限春愁莫相问,(唐赵嘏...
    邓文伟阅读 602评论 0 0
  • “其实一个月以前,我也还是学生啊!” “好幸福,他们还是学生。” “好快啊,我们竟然毕业了。” 毕业了,工作后大家...
    熙惜阅读 471评论 0 0
  • 刘玉婷 一个人的观念决定一个人的格局,观念就是一个人的想法,假如你把美乐家想像成用产品,那你就是一个消...
    wu胡梦阅读 2,840评论 0 1