Vue Introduce

这篇PPT是关于最近在做H5版杭州公交的经验分享,里面部分细节也包括工作一年的总结。

简介

简介

Vue是我在8月份第一次接触,用周末两天时间熟悉了下API及Vue全家桶,框架学完练练手可以熟悉思路,在之后的项目中能马上使用到。所以我将我的博客从Angualr1.3改写到Vue1.0,花了不少下班时间。项目是由vue-cli基础上开发,现已在GitHub上开源,另外还包括对博客支持的后台代码,使用的是Node+Express+Mongodb。

之后Vue2.0发布后,趁着项目测试的空隙,又将博客升级到2.0,改动的部分及总结在博客中已写出,可以作为升级的参考,链接。到目前为止,已经使用Vue直接开发了3个项目,加上今天的分享,应该是第四个了。因为Vue对浏览器的唯一的限制是IE9+,故移动端应该是没问题的。

目录

目录

这个是ppt的顺序,有些思路可能某些同学没接触过,我也是用比较形象的方式给大家讲解。我希望以后大家在学到新的东西都能通过这种方式分享出来共同进步,回顾总结,加深自己的印象。

如何选择框架

如何选择框架

这里主要是我对我已有的经验来分析如何根据项目来选择框架。可能由我的局限性,希望能和大家碰撞下思想。

1. 对于后台管理系统

我曾经使用过两次jQuery+ifream框架(二次维护,历史遗留问题),通过接口获取数据后拼接HTML字符串然后append到DOM中,因为需求没有设计成UI,当时拿到的是功能清单,UI只能靠我们前端自己设计。因此在写render函数之前,我将画好的UI给leader看,然后讨论交互,连问多遍有没问题后才敢开始写render函数,因为需求改动后,render函数就会废弃再写!不过最后结果还好,返工的不多。另一个是给后台写jsp模板,分不清前后端界线,js交互也不敢多写(后端同学理解JS也是头疼)。

以上,也许也能看出问题点了,代码无法复用,需求改动后代码改动多;前后端界线不清,工作内容会有重叠,口头确认不是很好的规范。所以我倾向于基于MVVM模式的SPA系统。前后端由API文档划分界线,因为不涉及到首次加载速度、浏览器适配范围和SEO等问题,我认为SPA的方式是可行的,也是大多数公司在用的方式,例如阿里云控制台、收钱吧控制台、盈联智能商户管理系统等。

2. 对于面对消费者的PC页面

这种场景,使用后端渲染的方式无可厚非,加载快,利于SEO,页面可缓存等优点。

3. 移动端展示类型的页面

这种情况大多数不会超过5个页面(类似于抽奖、活动展示、答题、留言板等),且页面间衔接的紧密度不高,使用zepto框架即可。开发快速,a标签跳转,如果不喜欢300ms点击延迟,那就上fastclick就好,一般开发人员就能胜任。

4. 移动微应用

最后一个场景就是较为复杂的移动微应用,古老的方法是使用后端渲染的方式进行,例如jsp、hbs等,如果不同页面间数据需要传递也只能放到url中或者sessionStorage或者localStorage中,开发逻辑不好维护,需要加大量的注释。页面跳转还需要再次加载公共的脚本,如果服务器开了缓存还好,否则用户体验不好。我这里倾向于使用SPA模式开发,由路由控制增量加载的内容(懒加载),webpack进行代码分割,确保首屏之外的资源按需加载。前端控制范围增多,API划分界限。

MVC和MVVM对比

MVC和MVVM对比

Vue是基于MVVM开发模式的框架。在MVVM之前还有很多开发模式,不过都被踩在时代的脚下,比如MVC。就我经验所及的范围,我认为MVVM在处理UI交互方面应该是抽象的最全面的模式。

上张图是MVVM的结构,在SilverLight或者WPF开发中常用的模式,同理,前端也是和UI交互的部分,模式借鉴很有意义。View层只依赖数据,降低View-Model与View之间的耦合;只要数据相同,View-Model可复用,UI测试转化为对Data的测试。

jQuery是MVC开发模式的一个代表。在jQuery代码中,controller中存在大量的和view耦合的逻辑,例如jq中的html片段拼接,无法复用和维护困难。另外,controller基本没有测试的可能。

MVC和MVVM业务实现区别

1. MVC方式

MVC方式

以我现在在做的页面对MVC和MVVM做个对比。

页面1是第一次的需求,我按照页面将HTML片段和数据拼接写好render函数,之后append到页面中,数据通过ajax获取。当UED改图时(页面2),可以看出页面的结构发生了变化:由之前的上下结构变成了左右结构,对用的HTML片段也要发生变化,故render函数需要修改以适应新需求,我醉了。。。这种需求以前遇到很多回了!view和controlelr高度耦合,并且HTML片段不易再次维护,不可测试也无法复用。

2. MVVM方式

MVVM方式

如果页面是使用MVVM模式做的话,从上面可看出,页面的数据是没变动的,只是HTML变动,故使用Vue双向绑定的基础功能,我这里只需要修改HTML即可,View-Model中的代码无需修改。另外,只要数据格式没问题,页面的渲染效果也固定,可测试。之后讲解下代码复用部分。

3. View-Model代码复用

View-Model代码复用

换乘摘要[1]、换乘详情[2]、换乘地图[3]三部分的页面有公共个数据部分:URL参数(起始终止位置信息+换乘策略信息)、当前策略下换乘信息(allData -> 包含起止经纬度、摘要和详情),换乘地图独用transferMap。因此,此部分的View-Model可复用,只需要判断path后开启必要的部分即可。

以上就是MVVM的三个优点:低耦合、可复用、可测试、易维护。

Vue性能

Vue性能

我一般在使用Vue都是在做移动端开发,既然选用是看中他的两个特性:运行快+加载快;上图是Vue2.0的综合性能对比图,右边是Benchmark跑分(不服跑跑分),绿色越深代表越好。红框圈出的部分从左到右依次是react、Vue2.0、原生JS。想必大家能看出来差异了。值得一说的是,Vue2.0是基于更快的Virtual-DOM。

Vue构建大型项目及生态

Vue构建大型项目及生态

Vue在构建大型项目也不逊色,因为Vue.js自身只是处理View层的框架,做大型项目需要协同插件的协助,这个与react很像。可以说Vue构建大型项目的插件都已完备。参见上图。

我为什么使用Vue

我为什么使用Vue

最后说下我为什么倾向于使用Vue。我认为,工具的价值在于为人服务。Vue及其附属的Vue-cli工具很好的在开发者体验和最终生成代码之间做好了桥梁,即:说明文档详细,代码编写简单,API抽象到位方便别人阅读,最终代码运行高效。

另外,框架的选择取决于团队的水平,Vue还是很简单的,而且还是中文文档哦。

最后

用了Vue,我可以正常下班了

以上内容的更新请查看我的博客,点这里

(完)

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,574评论 25 707
  • 今天是个很现实的时代 不打拼,不奋斗 怎么追梦? 我真的很累 不屈于现在我 努力奋斗着 可我真的好累 多想放慢脚步...
    写作星阅读 156评论 1 1
  • 2017-6-20 晴 他:“现在老婆和老妈总是发生矛盾,你看问题这么透彻,能不能帮忙想个办法化解一下这个难题?”...
    实干日志阅读 550评论 0 0
  • 很久没有 像是儿时得到心爱的玩具般心动 梦想如是儿时玩具 在看到雄鹰展翅的刹那 心中悸动 无法安宁 太久 心已被灰...
    是我shiWo阅读 382评论 0 1