这里首先需要澄清一下偶下面的论述:
关于
Vue.js
,指的是2.0+,关于Angular,指的是2.0~8.0
Vue
vue在国内很火,很多大大小小的公司开发前端应用都在使用它。因为作者尤雨溪同志在设计之初就将vue设定为简单易学,快速上手,学习曲线平缓。所以深受广大前端开发者的喜爱。它是一个渐进式的框架,通俗讲就是用它开发WebApp,一开始很小,随着开发的进行,功能的增加,你的项目复杂度会慢慢的增加。所以vue很适合小型的前端应用,小型的前端应用结构简单,功能较少。
但是,一旦你要给你的项目里添加更多的功能,vue就会要求你再去安装其他的包,比如路由包vue-router,比如HTTPAPI的前端axios(用这个访问后端服务器的API,来向后端传递数据或者访问后端服务器来获得数据)。这个过程就是“渐进”。
再说说vue的语法。在它的控制模块controller,语法还是比较简洁的,2.0版本采用的还是Javascript语法,去年11月发布的3.0则采用的是TypeScript。在它的视图模块View,则是将一些语法与HTML相结合,动态的生成最终的html代码。例如
<h3>{{title}}</h3>
在你的JS代码中定义好这个title变量,并赋值,那么在最终的HTML代码中这个花括号和title位置就会被变量title的实际的值替换掉。
另外,在使用vue开发的时候,每一个*
.vue
文件都是一个模型model,在模型中,会包含HTML代码,CSS代码,JS代码。这样的设计就非常的紧凑,项目文件的数量会比较少。但是你写的代码多了之后,一个vue文件就会很长,偶个人非常痛苦,要不断的拖拽窗口,拨动鼠标滚轮,哈哈。好了,vue就先说到这里,接下来讲一讲Angular
Angular
Angular(简称ng)最早是由Google公司内部的一个工程师开发的,早期的1.0版本的语法非常繁琐,很难写,偶个人学习前端框架,其实就是从angular1.0开始的,吐了很多次血。到了2.0以后,ng的架构就彻底的面向了MVC(model-view-controller),将视图、控制器、模型彻底分离,可以单独开发。ng的最大特点就是高度集成,你在开发项目的时候,对于API访问、异步操作等前端常见的功能,ng都已经有了内置的包,只需要依赖注入就可以了。比如
import{HttpClient,Http}from”angular/core”
ng从2.0开始,就直接要求使用TypeScript语言(微软出品,可以看作是OOP风格的JS,很好用,很规范)。每一个ng模块,都基本上由三个文件组成,*.html,*.js,*
.css
。在ng的视图文件中(html),采用的是数据双向绑定,例如:<input
type=”text”
class=”form-control”
id=”name”required
[(ngModel)]=”title”
name=”name”
>
这个title变量是与js文件中的title变量双向绑定的,无论在页面的输入框里修改title,还是通过js程序修改title,都会改变这个变量title的值,你看到的效果就是输入框里的内容变化了。
Angular的学习曲线比较陡峭,国内用的很少。但是偶曾经和美国的哥们一起开发过WebApp,他们张口就是采用Angular4.0+。正好偶也没怯场。ng在国外用的比较多,适合多人协作开发规模较大的项目。
补充
偶经常和偶的学生交流,他们说去了一些培训机构打听后,前端课程里也有vue,也有angular。但是偶发现教授的angular都是
angular.js
,这样写就表示angular1.0。现在已经过时了。所以如果你提问的目的是要去自学或者加入培训机构,请擦亮眼睛,不要浪费时间。如果你提问的目的是要去求职,从事前端开发的工作,那么在国内,没办法,Vue你必须掌握,Angular可以不去理会。
另外,不要忘了目前前端框架江湖的三分天下局势,道上还有另外一个框架,就是Facebook出品的,同样出名的React,有兴趣和精力了,也可以去了解一下。
最后,回到你的问题,哪个简单易学?是Vue。哪个好?偶个人认为它们不相上下,都是生产环境下可靠的框架,都不会让你失望。