学习笔记:
what?
Angular
官网介绍
Angular 是一个开发平台。它能帮你更轻松的构建 Web 应用。Angular 集声明式模板、依赖注入、端到端工具和一些最佳实践于一身,为你解决开发方面的各种挑战。Angular 为开发者提升构建 Web、手机或桌面应用的能力。 上面可以理解为:
1、Angular是一个MVVM (Model View ViewModel)前端框架
2、静态检查,只能遵循typescript语法的开发平台
3、有一套包括请求、依赖注入、装饰器、声明式模板等完整的解决方案
Vue
官网介绍
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
上面可以理解为以下:
1、这是一个渐进式框架
2、只关注视图层及View
3、是个构建单页面应用的JavaScript库
4、可以集成第三方库,例如: Router、Vuex
5、可以通过集成第三方库,构建大型的单页面应用
补充:什么是渐进式【根据自己的项目需要,把它当做第三方库,按需引用到自己的项目中】
再具体阐述下:
它是渐进的,没有强主张,你可以在原有大系统的上面,把一两个组件改用它实现,当jQuery用;也可以整个用它全家桶开发,当Angular用;还可以用它的视图,搭配你自己设计的整个下层用。你可以在底层数据逻辑的地方用OO和设计模式的那套理念,也可以函数式,都可以,它只是个轻量视图而已,只做了自己该做的事,没有做不该做的事,仅此而已。渐进式的含义,我的理解是:没有多做职责之外的事。
Why?
Vue
- 不是真正意义的框架,更像是一个第三方库
- 只关注视图层View
- 轻量级的单页面应用
- 渐进式的,自下而上的增量应用
- Vue 通过最少量的组件重新渲染,可以将模板预编译为纯 JavaScript
- 基于ES5 Javascript开发的,只支持ie9及以上
- Vue 非常灵活并且可以与大多数开发者想要使用的库兼容。
- Vue 的虚拟 DOM,使得界面渲染更加迅速
- 双向绑定较简单,主要通过set与get,通过观察者依赖收集与触发实现
- 为MVVM框架,有完整的解决方案,包括依赖注入,声明式模板,装饰器
- 用TypeScript语法,对复杂的项目开发利好
- 脏数据检查机制
- 以跨浏览器兼容的方式操作 DOM,可以兼容ie6
- 在 Angular 中,控制器和指令等实体包含在模块中,而 Vue 的模块中包含组件逻辑。
- 双向绑定比较复杂