Vue基础知识

Vue

框架概述

虽然我不是以Vue入门MVVM的,Angular和React的经验让我初次接触Vue的时候有很多不屑。这种情绪很不好,尤其是在我更换title之后,站在产品的角度看问题,Vue是非常非常伟大的。

Unix设计哲学之一便是,数据结构往往比算法重要得多,不论你多么精妙的算法,多么精妙的实现,一旦出发点是错误的,数据结构有问题,往往就会一错再错。
这时候再来看Vue,就会发现它的设计是多么的精妙。
笔者先来细数一下Vue在应用上的优点,相信会引起大家的共鸣:

  1. 相较于Angular的zone和Rxjs,Vue的抽象程度和灵活性确实低了非常多,但是从另外一个角度上说 ,Vue更加简洁明了,聪明人都知道代码简洁易懂意味着什么。

  2. Vue没有采用Typescript,不过也是因此代码效率大大提高,对V8类型足够了解的程序员能够更有效率地进行工作。并且由于是Js,依赖注入只需要使用闭包,而不需要像Angular那样实现依赖声明和依赖查找。

  3. 足够简单,意味着在有限的生命尺度类一个正常人可以很清晰地了解框架的全部内容(有些夸张了),视图层在应用中起的作用十分有限,没有必要加重它的地位,这不是产业发展的主流(精力应该放在集群计算和人工智能上)。这方面Angular是极其不好的反面教材,增大api面积和抽象程度的确能增加“前端”程序员的能力,但是抱歉,技术都是为商业服务的。

  4. 超大型项目适配上Vue确实是短板,但是想象一下,如果你不是银行,国有大型企业,你的业务需要超大型应用来解决,是不是你产品设计有问题?即便设计没有问题,类似Angular,Ember等框架也只会把你变成一颗螺丝钉。Vue这一点就很好,扪心自问一下,市场上99.9999%的应用都是小型应用

  5. Vue大部分代码是由一个人完成的,这就保证了其代码核心的稳定性,不会出现与设计初衷相违背的破坏性升级。Angular这里就做得非常不好,聪明人宁可与一位天才合作,也绝不与一群天才合作,没有闲工夫等你们推诿扯皮。

  6. 若是真正功能密集的产品,你会发现采用静态页面,摒弃状态管理是最好的方式。这时候,Vue足够小的优势就体现出来了,还能代替jQuery做增强交互。

当然,事务不可能只有优点没有缺点,Vue最大的缺点就是很容易出现舒适区,作为一个前端开发者,你可以不用Typescript,可以不用Rx,但是你不能连类型和响应式的概念都没有。Vue只是一个生产工具,并不是核心竞争力,停留在Vue的舒适区危害是非常大的。
尤其是接下来笔者要讨论的主题,只有Vue的编程经验,只是一个框架使用者的话是非常难以理解的。

框架关键功能点

模板渲染

提供了大部分模板引擎都有的功能,实际上就是把后端模板功能在前端用JS重新实现了一遍,这也是mvvm的精髓,将cv在前端实现为vm。
不过Vue专门针对VM提供响应式API,默认data中的变量对V提供get代理,对M提供set代理。
自定义响应式的话通过computed对M提供监听,通过watch对V提供监听。
简单明了,很容易理解其实现。

组件化

没有React那种model系统,至于Angular那种对于小型应用来说过度设计的服务Model,更不会被Vue采纳。
没有过多概念,组件就是组件。

生命周期

因为没有Angular zone那样的完全事件代理,所以完全的响应式生命周期是不可能的。不过大多数应用场景下,即便是用Angular,还是会手动设置onPush。简单即使最好的,何况真需要的话事件监听器更加实用。(zone非常天才,但是大多数应用都是给凡人用的)

混入

混入就是组合(动态语言),实际上go语言是没有继承的,组合更加高效,采用了最新的编程理念。

指令

指令就是V层代理,虽然整个VM都是V的代理,但是指令更多地是动态添加指示,热插拔地进行V的操作,更加灵活。
这是一个来之ng的功能点,被Vue采用。

插件

全局自定义,实际上就是依赖注入。

状态管理

凡是单页面应用都是需要管理状态的,不要拿Redux刚发布的那时候说事,大学的数据库课程都教过你事务的特性,每一个阶段都必须有单独的状态。
静态页面每一次操作都会重新获取,不存在状态管理的过程,但是SPA就必须管理状态。
Vue采用Vuex进行状态管理,较为合适,但是Angular在状态管理上更胜一筹,有条件的可以尝试BehaviorSubject,别人连响应式都顺手做了。

服务端渲染

都用了SPA还服务端渲染的都是脱了裤子放屁。
这个功能非常鸡肋。

vue-loader

单文件组件在进行小组件编写的时候非常实用,还是建议能将测试文件也写进去,稳得一皮。

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

推荐阅读更多精彩内容

  • vue 特点: 1)vue是一套构建用户界面的渐进式框架(mvvm) 2)轻便,入门容易, 渐进式 步骤: ...
    zhang南方有嘉木阅读 224评论 0 1
  • 引子 前端三大框架: +Angular Google Angular.js(1.x) Augular(2.x) +...
    smartlala阅读 381评论 0 1
  • vue.js是一套构建用户界面的渐进式框架,与其他框架不同的是,vue采用的是自底向上增量开发的设计 this 在...
    Gopal阅读 817评论 0 0
  • 1月末,广义货币(M2)余额157.59万亿元,同比增长11.3%,增速与上月末持平,比去年同期低2.7个百分点;...
    Chloe婉阅读 107评论 0 0
  • 一 2016过了有十几天了,十几天前暗下决心说过“2016要遇见一个不一样的自己”。而现在也只好暗暗的承认,其实...
    强说愁阅读 445评论 0 0