做为一个刚入行不久的菜鸟不知从何时开始就有了写一个本身的专栏的想法,恰好今天没事就给本身挖一个坑,分享一下我对vue的看法和一些领悟,整个专栏应该会包括vue,vue-cli,vue-router,vuex,nuxt和一些webpack的简单入门,固然实战项目也必定会放出来,更新频率视手头的项目进度而定,话很少说,开始今天的第一篇专栏。前端
说到了vue,咱们就不得不先聊一下vue是什么以及为何咱们要使用vue,他能给咱们的开发带来什么样的便利呢?
首先,咱们来看一下vue的自我介绍:vue
Vue (读音 /vjuː/,相似于 view) 是一套用于构建用户界面的 渐进式框架。
请注意我加粗的这一点,渐进式框架是相比于Angular.js我最喜欢的一点(ps:绝对不是由于vue的文档写的最好 :-) )
这意味着,vue是一个不管项目大小均可以知足开发需求的框架。(想当年我一次用vue-cli装的项目只有几十M,昨天从老大拷贝过来的src都已经200M了……)
通俗的来说,vue就是一个已经搭建好的空屋,与单纯使用jQuery这种库比,能够更好地实现代码复用,减小工做量,与Angular.js这种家具电器包罗万象的框架相比又不会一件件挑选,把本身不喜欢再一件件的扔了,甚至required 必须用且耗费空间的!
简而言之,vue作了必须的事,又不会作职责以外的事。webpack
若是你对前端有过了解的话必定知道MVVM和MVC这两种设计模式,并且颇有可能对mvp也有一些了解。
MVC即model,view,control,jQuery就是采用的这种设计模式,熟悉jQuery的同窗恐怕早就对$()深通恶绝了吧。web
MVVM即model,view,viewmodel,它是数据驱动模式,即全部的一切经过操做数据来进行,而尽可能避免操做dom树。ajax
换句话说,咱们不关注dom的结构,而是考虑数据该如何储存,用户的操做在view经过viewmodel进行数据处理,分状况是否经过ajax与model层进行交互,再返回到view层,在这个过程当中view和viewmodel的数据双向绑定使得咱们彻底的摆脱了对dom的繁琐操做,而是专心于对用户的操做进行处理,避免了MVC中control层过厚的问题。vue-router
提及来仍是比较感慨的,刚开始接触VUE的时候我对于他的组件仍是并不喜欢的,什么父传子,子不能传父,什么占坑,传参等等,彻底是一头雾水,而且感受这些东西彻底没有必要。
后来的事实证实,做为整个VUE文档中篇幅最大的部分,组件但是至关的添彩,要不是有组件这么易于复用,不易污染的特性,怕不是我都疯了无数回。
打个比方,咱们如今要作一个有一百个页面的项目,其中有三十三个导航栏是A,六十七个导航栏是B,这其中三十三个A导航栏中有一个模块不同凡响,能够分为A1,A2,A3,A4……
这个若是用jQuery解决的话,就得本身封装模板插件,且要么写(A,B,A1,A2,An).length个模板,要么模板套模板。
啧啧,累死个狗娘养的了。
这点上,VUE的模板就简单的多,咱们先算好要多少个组件,而后看看组件之间有没有相互嵌套,把全部须要的地方都先挖上坑(写好组件标签),而且在组件标签中写好要传入组件的参数,再分别写好各类组件的实现,简简单单的就写好了,即便是嵌套也只是组件标签中套一个组件标签,更简单的改一个传参可以实现。vuex