近些年前端框架很是多,主流的有 Vue、React、Angular 等。我参与的项目中使用较多的是 Vue。由于 Vue 学习难度不大,上手很快,代码简洁,并且使用 Vue 全家桶(Vue + Vue-Router + Axios + Vuex + Vue-Bus等)、再配合 Element UI 等第三方UI组件库进行开发也是不错的选择。Vue 的做者是华人,故文档等各方面资料也很是齐全。 但我的体会:若是前端项目庞大,在工程化方面,Angular 是最佳选择,最贴近 Java 后端开发的思想。无论怎么说,几你们族各有利弊,任何争辩都毫无心义,根据项目和喜爱爱用啥就用啥。html
Angular 学习思路前端
在 Angular 的学习过程当中充满兴奋刺激与痛苦,在几个项目中也逐渐对 Angular 的学习有一些体会。个人学习过程大概是这样的:ios
Getting Start
为主,一步一步安装配置开发环境(NodeJS、Angular Cli等);Hello World
,并运行,确保环境配置成功;Hello World
了解angular工程的目录结构及文件;参考网站 Angular 官网: https://angular.io/guide/quickstarttypescript
对 Angular 的基本概念有个大体的印象后,接下来按照官网的 Toutorial 教程(开发 Tour of Heroes 应用),一边阅读教程,一边跟着开发。该教程首先介绍了整个应用的功能和效果,接着从命令行建立工程开始,一步步实现并完善工程。整个教程涉及了 Angular 的不少知识,如组件的封装、依赖注入、路由、服务、HTTP 网络请求等;遇到不会的、不理解的,先忽略,照着把代码先敲下来,再回头去理解消化;跟着写完后,会对 Angular 的开发有必定的感受。后端
参考网站 Angular 官网: https://angular.io/tutorial前端框架
Angular 支持 TS 和 ES6,官方推荐使用微软的 TypeScript 语言。 经过 Tour of Heroes 应用编写的学习,会接触到一些 TS 的语法。此时能够回过头去系统掌握 TS。主要内容包括:数据类型、模块、函数、泛型、面向对象(类、对象、构造函数、继承)等。微信
参考网站 TypeScript 中文网: https://www.tslang.cn/docs/home.html网络
阅读 Angular 官网的语法 Fundamentals 部分,系统学习 Angular 的内容。主要包括:架构
参考网站 Angular 官网: https://angular.io/guide/architectureapp
RxJS 是 Angular 的重心,我的以为 若是在 Angular 项目开发过程当中不使用 RxJS,则失去 Angular 很大一部分优点。 RxJS 加入了在时间线方面的思考,能够使不少复杂的问题简单化,强烈建议深刻学习。
首先学习 RxJS 的几个核心对象 Observable、Observer、 Subjects、 Subscription,而后了解 RxJS 中常见的操做符, 最后练习 RxJS 在 Angular 中的使用。
参考网站
RxJS 文档: https://rxjs-dev.firebaseapp.com/guide/observable Angular 官网: https://angular.io/guide/observables
NGRX 是基于 Redux 开发的一套适合 Angular 的状态管理技术。 应用中全部的数据、UI 均可以看作"状态"。 当应用庞大时,若是数据须要在多个组件间复用,此时状态管理就能够发挥做用了。 NGRX 主要包含 Actions、 Reducers、 Effects 三个主要模块,此外还有 Entity, Router-Store等, 按照官网很容易上手。
参考网站
NGRX 官网: https://ngrx.io/guide/store
有了上面的基础后,就能够在项目里面大胆使用 Angular 了。如后台管理系统、App 开发、 前台应用等。 在项目实战中又会接触到其余一些技术。
本文仅谈了我在 Angular 的学习过程当中的思路,以及我对 Angular 技术组成的理解,后续打算挑一些 主题 或 项目实战 写一些详细的理解和体会。
有兴趣的伙伴欢迎关注微信公众号