开发项目之前,我们需要对Angular进行一下简单了解,并与其他主流框架进行对比分析。
一.AngularJS的优点与存在问题
1.优点
- 模板功能强大丰富
- 比较完善的前端MVC框架
- 引入了Java的一些概念
2.存在问题
- 性能:双向数据绑定会影响性能
- 路由不完善
- 作用域:在AngularJS中的作用域将执行环境与浏览器环境隔离开,原生的事件不能影响其作用域,如不能用选择框的select事件,只能使用ngselect指令等。
- 表单验证:在AngularJS中显示错误信息的功能较为薄弱,但在Angular中提供了响应式表单,便于进行表单校验以及显示错误信息
- JavaScript语言:本身没有类型系统,面向对象开发的能力不足够。但在Angular中使用TypeScript语言进行开发。
- 学习成本高:需要学习大量概念,模块、控制器….。Angular的核心就是组件。
3.Angular新特性
- 全新的命令行工具AngularCLI
- 服务器端渲染
- 移动和桌面兼容
4.AngularJS和Angular架构对比
AngularJS:典型的MVC架构
Angular架构:整个应用就是一个组件树,用户看到的页面就是由组件树上被激活的组件组成的,用户通过操作从一个组件路由到另一个组件。
二.Angular与其他框架的对比
1.React
- React优点
- 速度:由于运用虚拟DOM操作,先更新虚拟DOM,再将虚拟DOM与实际做比较进行更新实际DOM。更新DOM的次数和内容少,从而速度快。
- Flux架构:组件化,数据的单项更新,可以直接使用JS的ES6语法,并通过Webpack等工具编译成ES5。
- 服务器端渲染:在服务器上预渲染应用再发送到客户端有助于优化。
- React问题
- 目标是UI组件,通常需要与其他框架共同使用。
- 第三方组件没有Angular多。
2.Vue
- Vue优点
- 简单,使用难度低
- 灵活,官方有构建工具协助构建项目
- 性能:尺寸小,基础框架是10几K,但Angular的基础框架是50几K
- Vue问题
- 个人主导的项目,Angular是谷歌主导的
- 只关注web;Angular实现更高层次的抽象,既可以开发前端又可以开发Native项目
- Vue依靠第三方库实现服务器端渲染;Angular是官方提供的服务端渲染方式