前言
因为项目的原因,最近由后端切向前端,平时也听同事说过前端三大框架:angular、react、vue,前端从mvc架构切换到mvvm架构,数据驱动、实时渲染等,项目中用的是vue,遂来学习一番,学以致用。
vue介绍
学习vue的最好方法当然是去vue官网了解
官网开始就给我们回答了几个我们关注的问题:
1、我是什么:渐进式javascript框架
2、为什么选择我:why vue.js
3、我的优势是:易用、灵活、高效
4、怎么去做:起步
5、我在哪:github
简直是简洁的完美,当然赞助也得放上去,别人也得吃饭啊,同时也是在向我们宣告:“我背后有人哦,小弟们快来膜拜我吧”,好吧,这个小弟我当了,请收下我的膝盖。
渐进式前端解决方案
工具复杂度和内在复杂度
说实话,第一眼看到“渐进式javascript框架”这个介绍我是一脸懵逼的,什么意思嘛,本屌看不懂,查找资料后在vuejs作者尤雨溪大神的Vue 2.0——渐进式前端解决方案这篇文章找到了答案:
首先框架是我们用来开发的工具,框架的存在是为了帮助我们应对软件复杂之道,如果你用太简陋的工具应对非常复杂的需求,就会极大地影响生产力。而框架本身也会带来复杂度,在调研各种框架或学习各种框架时,会遇到学习曲线问题——有些框架会让人一时不知如何上手。
这里涉及到两个复杂度:工具复杂度和内在复杂度(应用复杂度)
工具的复杂度是可以理解为是我们为了处理问题内在复杂度所做的投资。如果要解决的问题本身是非常复杂的,那么你用一个过于简陋的工具应付它,就会遇到工具太弱而使得生产力受影响的问题。
反之,是如果所要解决的问题并不复杂,但你却用了很复杂的框架,那么就相当于杀鸡用牛刀,会遇到工具复杂度所带来的副作用,不仅会失去工具本身所带来优势,还会增加各种问题,例如培训成本、上手成本,以及实际开发效率等。
最后得出一个结论:Pick the right tool for the job
可弹性伸缩的工具复杂度
为了适应不同内在复杂度的应用的开发需要,可弹性伸缩的工具应运而生:当所要解决的问题内在复杂度很低的时候,可以只用核心的这些很简单的功能;当需要做一个更复杂的应用时,再增添相应的工具。
vue给出的解决方案就是核心+生态的栈:
声明式的渲染功能:我们可能在任何情况下都需要声明式的渲染功能,并希望尽可能避免手动操作,希望尽可能地让DOM的更新操作是自动的,状态变化的时候它就应该自动更新到正确的状态,这就是核心咯;
组件系统:将一个大型的界面切分成一个一个更小的可控单元,这也是核心的一部分;
客户端路由:这是针对单页应用而言,不做就不需要,如果需要做单页应用,那么就需要有一个URL对应到一个应用的状态,就需要有路由解决方案,这就是所谓的生态的一部分;
大规模的状态管理:当应用简单的时候,可能一个很基础的状态和界面映射可以解决问题,但是当应用变得很大,涉及多人协作的时候,就会涉及多个组件之间的共享、多个组件需要去改动同一份状态,以及如何使得这样大规模应用依然能够高效运行,这就涉及大规模状态管理的问题,当然也涉及到可维护性,这也是生态的一部分
......(生态可以不断扩展)
通过上面分析可知vue给了我们一套完整的解决方案,学习路线也就确定了:首先必须得掌握核心声明式渲染和组件系统,然后根据自己系统的需要去选择相应的生态。
总结
好吧,废话有点多,Talk is cheap,show me the code,本篇主要介绍了vue是什么,并没有代码部分,后面将根据vue的核心和生态去一步一步实践vue。
感想
纪念自己第一次写博客,感觉有点像日记......,很多东西都是借鉴的,语言和逻辑组织得也不是很顺畅,后面也会常修改;
今天蒙小学妹恩宠,蹭了一场电影和一顿饭,话说小学妹蜷缩在电影院凳子上真的好可爱,就像小猫咪一样,总之今天是个开心的日子。