Angular 学习思路
近些年前端框架非常多,主流的有 Vue、React、Angular 等。我参与的项目中使用较多的是 Vue。因为 Vue 学习难度不大,上手很快,代码简洁,而且使用 Vue 全家桶(Vue + Vue-Router + Axios + Vuex + Vue-Bus等)、再配合 Element UI 等第三方UI组件库进行开发也是不错的选择。Vue 的作者是华人,故文档等各方面资料也非常齐全。 但个人体会:如果前端项目庞大,在工程化方面,Angular 是最佳选择,最贴近 Java 后端开发的思想。不管怎么说,几大家族各有利弊,任何争辩都毫无意义,根据项目和喜好爱用啥就用啥。
Angular 学习思路
在 Angular 的学习过程中充满兴奋刺激与痛苦,在几个项目中也逐渐对 Angular 的学习有一些体会。我的学习过程大概是这样的:
- 了解 Angular 基本概念,配置开发环境;
- 学习官网教程,按照教程编写第一个应用;
- 系统全面掌握 TypeScript 语法;
- 系统掌握 Angular 的体系结构,学习官网每个知识点;
- 掌握 RxJS 以及如何在 Angular 中使用 RxJS;
- 学习 NGRX;
- 在项目中使用上面提到的技术。
了解Angular里面的基本概念
- 浏览官网文档,上网搜索入门教程,对 Angular 有一个模糊的认识;
- 以官网的
Getting Start为主,一步一步安装配置开发环境(NodeJS、Angular Cli等); - 创建第一个工程
Hello World,并运行,确保环境配置成功; - 通过
Hello World了解angular工程的目录结构及文件; - 继续上网查资料,对组件、模块、指令等概念有个大概的印象(注意:只是大概的印象,并不是理解或掌握),知道组件是个什么玩意,模块又是怎样表示。
参考网站 Angular 官网: https://angular.io/guide/quickstart
动手编写第一个应用 Tour of Heroes
对 Angular 的基本概念有个大致的印象后,接下来按照官网的 Toutorial 教程(开发 Tour of Heroes 应用),一边阅读教程,一边跟着开发。该教程首先介绍了整个应用的功能和效果,接着从命令行创建工程开始,一步步实现并完善工程。整个教程涉及了 Angular 的很多知识,如组件的封装、依赖注入、路由、服务、HTTP 网络请求等;遇到不会的、不理解的,先忽略,照着把代码先敲下来,再回头去理解消化;跟着写完后,会对 Angular 的开发有一定的感觉。
参考网站 Angular 官网: https://angular.io/tutorial
学习TypeScript语法
Angular 支持 TS 和 ES6,官方推荐使用微软的 TypeScript 语言。 通过 Tour of Heroes 应用编写的学习,会接触到一些 TS 的语法。此时可以回过头去系统掌握 TS。主要内容包括:数据类型、模块、函数、泛型、面向对象(类、对象、构造函数、继承)等。
参考网站 TypeScript 中文网: https://www.tslang.cn/docs/home.html
学习Angular的架构及概念
阅读 Angular 官网的语法 Fundamentals 部分,系统学习 Angular 的内容。主要包括:
- 架构(全局性的介绍):站在高处纵览 Angular 的组成。Angular 的整体架构、Angular 的启动过程和执行流程、 认识 Angular 模块和组件、认识服务和依赖注入;
- 组件和模板:组件是Angular 应用的最基础的单元。 数据绑定、输入输出属性、组件样式、组件生命周期、组件间通信、指令、管道;
- 表单:表单应用场景广泛,主要学习模板驱动表单、响应式表单、表单校验、如何自己封装表单控件;
- 模块: 如何创建一个 Angular 模块,模块的懒加载, 共享模块等;
- 依赖注入: 深入学习 Angular 对依赖注入的实现, 如何定义 Service;
- 路由: 单页应用中多个界面之间如何跳转,如何嵌套路由,路由如何传递参数;
- 网络请求: 与后台交互是永恒的主题,如何发送 HTTP 请求,获取返回数据。
参考网站 Angular 官网: https://angular.io/guide/architecture
学习RxJS
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
NGRX 是基于 Redux 开发的一套适合 Angular 的状态管理技术。 应用中所有的数据、UI 都可以看做"状态"。 当应用庞大时,如果数据需要在多个组件间复用,此时状态管理就可以发挥作用了。 NGRX 主要包含 Actions、 Reducers、 Effects 三个主要模块,此外还有 Entity, Router-Store等, 按照官网很容易上手。
参考网站
NGRX 官网: https://ngrx.io/guide/store
项目实战
有了上面的基础后,就可以在项目里面大胆使用 Angular 了。如后台管理系统、App 开发、 前台应用等。 在项目实战中又会接触到其他一些技术。
- PC 端中台系统的 UI 框架: Angular Material、 ZORRO、 PrimeNG 等;
- 移动端 UI 框架: Ionic Framework、 NG-ZORRO-ANTD-Mobile 等;
- 第三方简化开发的库: lodash、 date-fns、 iconfont 等;
- Angular 动画;
- Angular 项目打包、优化、测试等。
本文仅谈了我在 Angular 的学习过程中的思路,以及我对 Angular 技术组成的理解,后续打算挑一些 主题 或 项目实战 写一些详细的理解和体会。
有兴趣的伙伴欢迎关注微信公众号

Angular 学习思路的更多相关文章
- angular学习资源
angular学习资源 angularjs库: https://developers.google.com/speed/libraries/devguide?hl=zh-CN#angularjs ...
- Android——Cocosd2d-x手机游戏开发学习思路
手机APP应用如雨后春笋般冒了出来,而在众多的APP应用中,游戏占据了半壁江山.它丰富着人们的业余生活,增进了人们之间的沟通交流.也有许多开发的朋友对游戏开发情有独钟,他们不止是享受着有很多的人们去下 ...
- angular学习一框架结构认识
angular学习所有内容均会与vue以及react框架进行对比. angular学习使用的编译器:webstorm 解决编译器屏蔽node_modules包问题: File-->setting ...
- Java源码阅读的真实体会(一种学习思路)
Java源码阅读的真实体会(一种学习思路) 刚才在论坛不经意间,看到有关源码阅读的帖子.回想自己前几年,阅读源码那种兴奋和成就感(1),不禁又有一种激动. 源码阅读,我觉得最核心有三点:技术基础+强烈 ...
- [k8s]一些技巧性的yaml和dockerfile-docker学习思路
我会把一些dockerfile和yaml的技巧性东西不定期搜集到这里 docker学习思路 三部曲: 1,vm会搭建服务 2,docker会跑服务 3,k8s集群会调度该服务 存储 vm1 vm2 共 ...
- HyperLedger Fabric 学习思路分享
HyperLedger Fabric 学习思路分享 HyperLedger Fabric最初是由Digital Asset和IBM公司贡献的.由Linux基金会主办的一个超级账本项目,它是一个目前非常 ...
- angular学习笔记(三十一)-$location(2)
之前已经介绍了$location服务的基本用法:angular学习笔记(三十一)-$location(1). 这篇是上一篇的进阶,介绍$location的配置,兼容各版本浏览器,等. *注意,这里介绍 ...
- angular学习笔记(三十一)-$location(1)
本篇介绍angular中的$location服务的基本用法,下一篇介绍它的复杂的用法. $location服务的主要作用是用于获取当前url以及改变当前的url,并且存入历史记录. 一. 获取url的 ...
- angular学习笔记(三十)-指令(10)-require和controller
本篇介绍指令的最后两个属性,require和controller 当一个指令需要和父元素指令进行通信的时候,它们就会用到这两个属性,什么意思还是要看栗子: html: <outer‐direct ...
随机推荐
- 花生壳内网穿透vue项目错误
原因:新版的webpack-dev-server出于安全考虑,默认检查hostname,如果hostname不是配置内的,将中断访问. 解决:webpack.dev.conf.js添加配置 disab ...
- Python三引号
Python三引号:多用作注释.数据库语句.编写 HTML 文本. strs = ''' 使用了三引号的字符串 ''' print (strs) # 在 ‘’‘ 里可以使用转义字符 strs = '' ...
- 【oracle】-表连接类型:内连接,外连接...
一.数据准备 1.emp表 delete from emp; insert into emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) ...
- js如何从一个数组中随机取出n个不同且不重复的值
前言 一位正在学习前端的菜鸟,虽菜,但还未放弃. 给大家画张图了解思路 以下是代码 function randomArr(arr,num){ let newArr = [];//创建一个新数组 for ...
- Springboot+Mybatis+Clickhouse+jsp 搭建单体应用项目(三)(添加增删改查)
一.添加增加接口 @ApiResponses(value = { @ApiResponse(code = 200, message = "接口返回成功状态"), @ApiRespo ...
- CI4框架应用三 - app目录
我们再来看一下项目的app目录结构,这个目录就是我们开发的主目录,项目的配置,代码的编写都在这个目录中. Administrator@PC- MINGW64 /c/wamp64/www/ci4/app ...
- JVM系列之:从汇编角度分析Volatile
目录 简介 重排序 写的内存屏障 非lock和LazySet 读的性能 总结 简介 Volatile关键字对熟悉java多线程的朋友来说,应该很熟悉了.Volatile是JMM(Java Memory ...
- python实现单张图像拼接与批量图片拼接
本文实例为大家分享了python实现图像拼接的具体代码,供大家参考,具体内容如下 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经 ...
- Python玩转各种多媒体,视频、音频到图片
我们经常会遇到一些对于多媒体文件修改的操作,像是对视频文件的操作:视频剪辑.字幕编辑.分离音频.视频音频混流等.又比如对音频文件的操作:音频剪辑,音频格式转换.再比如我们最常用的图片文件,格式转换.各 ...
- JS DOM操作案例
显示隐藏表单文本内容 <input type="text" value="手机"> var text = document.querySelecto ...