We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
还记得大三开始看的第一个前端框架就是 Angular,看了一周看完文档,发现啥也没看懂,并且配套的经验文章或者书籍都非常少
所以说三大框架中,学习曲线最陡峭的是 Angular,可能大家都会表示赞同,除了繁杂的概念设计较多之外,RxJS 和 TS 都是使用这个框架的必修课,如果两者不会,那么基本上寸步难行
在辅导工作时,由于对 RxJS 和 TS 基本没接触过,所以刚入职花了仅三周才开始开发第一个小需求...使用了大半年后,对于这个框架也只能说是勉强会用,离精通还差的远
Angular 遵循语义版本控制标准,每个主要版本号都表示潜在的重大更改
Angular 承诺为每个主要版本提供 6 个月的积极支持,然后是 12 个月的长期支持
主要版本每两年发布一次,每个主要版本有 1 到 3 个次要版本
没错 NG 11 和 12 没什么改动,但是他就是升级了,嗯...
一般情况下,zone可以跟踪并拦截任何异步任务
Zone 通常具有以下阶段:
简而言之,如果发生以下事件之一,则框架将触发更改检测
setInterval()
setTimeout()
尽管Angular在后台进行了大量优化,但是在大型应用程序上性能仍然会下降
变更检测策略:
OnPush
输入属性已更改, 标记为@input() 的属性;
该组件或其子组件之一触发事件处理程序
手动触发变化检测
通过异步管道链接到模板的可观察对象发出新值, 如 data | async
让我们仔细看看这些事件类型。
Default
angular 官方使用了 RxJS 来管理和处理异步请求,这个库的理念和我们之前的 Promise 的理念完全相反,一般我们使用的是拉取的数据处理逻辑,我去 “拉” 取用户信息,然后处理展示等
而 RxJS 使用的是流的概念,是一种“推”的概念,我们将 userId 推送给用户信息请求函数,然后就能拿到用户信息,自动展示
并且 RxJS 提供了较多的内置 operator,需要一定的时间上手,但是一旦上手之后,处理起一些复杂的业务逻辑也会更加得心应手
RxJS 就是这样的一个工具,你用我推荐,我用我不用
有篇文章详细分析了 NG 的各种问题 ,比如
NG 的官方团队貌似出现过几次人员变更,核心成员的离开必然导致大量的维护问题 (见下方 github issues 趋势),现在 Angular 还有 1.7k 待解决的 issues..(seriously?)
除此之外,NG 的高质量学习资料基本上可说是少得可怜,按照使用情况来看,应该是英文资料较多,实际上也很难查找到一些高质量的 NG 原理或者是是特性的深入解析文章,反而是中文的比较多,着实有些令人奇怪..
NG 不能不说的一个问题,就是版本迭代,从我使用 NG 以来,NG 就升级了两个版本,对于小型业务方来说,升级不是一个很大的问题,但是对于公司这个体量的使用者来说,问题就暴露出来了
升级的主要步骤如下
所以说,真的很难,求求了,别再发新版本了,没什么大变动,为啥发新版本呢,为了 KPI 吗?
还记得说 Angular 适合大型项目的说法,到用起来,才发现根本不是这么回事
我们主站的班课项目非常之大,里面糅合了所有班课相关的模块,包括班课详情,用户详情,营销,教务等等的功能,本地 dev 需要 5 分钟,热更新 1 分钟,build 需要 40 分钟
这合理吗,这不合理...
首先,功能多了自然会带来此问题,但是 NG 官方并没有提供这类问题的解决方案,首先是不支持在项目内进行多页配置,必须得拆分项目才能拆开页面,由于项目模块的耦合,这高昂的成本, 前期也就不考虑了
后续调研发现,公司内部都在尝试迁移到 React 解决这个问题,主要有两类:
我们本质是为了解决开发难的问题,所以组内其他小伙伴前期尝试了 qiankun 的方案,结果发现踩的坑太多,进行不下去了。最后还是回到拆分项目这一步,进度也十分缓慢
好不容易拆分得差不多了,结果公司凉了...可见这个问题的解决成本之高昂
Angular 没有官方可用的 debug tool,至少在 2021 年 五月为止的半年时间内,这太令人费解了
刚开始用的时候找了半天以为是没找到,所以去 github 提了 issues,发现是官方就没提供过....唯一能有的 Angury 已经在 NG9 的时候不再支持了,并且性能也很差
想念有 Vue 和 React Debug Tool 的日子...
除此之外,RxJS 也没有 debug tool,由于本身是流的概念,很多时候根本不知道,那个流出发了刷新,每次 debug,都需要加一大堆 tap tap...
很无奈,不知道这个生态的开发者是真的都已经熟悉到不需要这类工具了吗...
Angular 的 IDE 兼容,目前也只有 webstorm 做的比较好,vscode 的插件基本还是不要使用了,如果还是要用 vscode,还是建议关闭所有 ng 插件,真的不好用
主要原因:
The text was updated successfully, but these errors were encountered:
No branches or pull requests
还记得大三开始看的第一个前端框架就是 Angular,看了一周看完文档,发现啥也没看懂,并且配套的经验文章或者书籍都非常少
所以说三大框架中,学习曲线最陡峭的是 Angular,可能大家都会表示赞同,除了繁杂的概念设计较多之外,RxJS 和 TS 都是使用这个框架的必修课,如果两者不会,那么基本上寸步难行
在辅导工作时,由于对 RxJS 和 TS 基本没接触过,所以刚入职花了仅三周才开始开发第一个小需求...使用了大半年后,对于这个框架也只能说是勉强会用,离精通还差的远
发展历史
Angular 遵循语义版本控制标准,每个主要版本号都表示潜在的重大更改
Angular 承诺为每个主要版本提供 6 个月的积极支持,然后是 12 个月的长期支持
主要版本每两年发布一次,每个主要版本有 1 到 3 个次要版本
没错 NG 11 和 12 没什么改动,但是他就是升级了,嗯...
特性
脏检测
变更检测周期
Zone.js
一般情况下,zone可以跟踪并拦截任何异步任务
Zone 通常具有以下阶段:
简而言之,如果发生以下事件之一,则框架将触发更改检测
setInterval()
andsetTimeout()
尽管Angular在后台进行了大量优化,但是在大型应用程序上性能仍然会下降
变更检测策略:
OnPush
输入属性已更改, 标记为@input() 的属性;
该组件或其子组件之一触发事件处理程序
手动触发变化检测
通过异步管道链接到模板的可观察对象发出新值, 如 data | async
让我们仔细看看这些事件类型。
Default
RxJS in Angular
angular 官方使用了 RxJS 来管理和处理异步请求,这个库的理念和我们之前的 Promise 的理念完全相反,一般我们使用的是拉取的数据处理逻辑,我去 “拉” 取用户信息,然后处理展示等
而 RxJS 使用的是流的概念,是一种“推”的概念,我们将 userId 推送给用户信息请求函数,然后就能拿到用户信息,自动展示
并且 RxJS 提供了较多的内置 operator,需要一定的时间上手,但是一旦上手之后,处理起一些复杂的业务逻辑也会更加得心应手
RxJS 就是这样的一个工具,你用我推荐,我用我不用
使用心得
社区生态
有篇文章详细分析了 NG 的各种问题 ,比如
NG 的官方团队貌似出现过几次人员变更,核心成员的离开必然导致大量的维护问题 (见下方 github issues 趋势),现在 Angular 还有 1.7k 待解决的 issues..(seriously?)
除此之外,NG 的高质量学习资料基本上可说是少得可怜,按照使用情况来看,应该是英文资料较多,实际上也很难查找到一些高质量的 NG 原理或者是是特性的深入解析文章,反而是中文的比较多,着实有些令人奇怪..
版本迭代问题
NG 不能不说的一个问题,就是版本迭代,从我使用 NG 以来,NG 就升级了两个版本,对于小型业务方来说,升级不是一个很大的问题,但是对于公司这个体量的使用者来说,问题就暴露出来了
升级的主要步骤如下
所以说,真的很难,求求了,别再发新版本了,没什么大变动,为啥发新版本呢,为了 KPI 吗?
坑多
微前端兼容问题
还记得说 Angular 适合大型项目的说法,到用起来,才发现根本不是这么回事
我们主站的班课项目非常之大,里面糅合了所有班课相关的模块,包括班课详情,用户详情,营销,教务等等的功能,本地 dev 需要 5 分钟,热更新 1 分钟,build 需要 40 分钟
这合理吗,这不合理...
首先,功能多了自然会带来此问题,但是 NG 官方并没有提供这类问题的解决方案,首先是不支持在项目内进行多页配置,必须得拆分项目才能拆开页面,由于项目模块的耦合,这高昂的成本, 前期也就不考虑了
后续调研发现,公司内部都在尝试迁移到 React 解决这个问题,主要有两类:
我们本质是为了解决开发难的问题,所以组内其他小伙伴前期尝试了 qiankun 的方案,结果发现踩的坑太多,进行不下去了。最后还是回到拆分项目这一步,进度也十分缓慢
好不容易拆分得差不多了,结果公司凉了...可见这个问题的解决成本之高昂
没有 Debug Tool
Angular 没有官方可用的 debug tool,至少在 2021 年 五月为止的半年时间内,这太令人费解了
刚开始用的时候找了半天以为是没找到,所以去 github 提了 issues,发现是官方就没提供过....唯一能有的 Angury 已经在 NG9 的时候不再支持了,并且性能也很差
想念有 Vue 和 React Debug Tool 的日子...
除此之外,RxJS 也没有 debug tool,由于本身是流的概念,很多时候根本不知道,那个流出发了刷新,每次 debug,都需要加一大堆 tap tap...
很无奈,不知道这个生态的开发者是真的都已经熟悉到不需要这类工具了吗...
IDE 问题
Angular 的 IDE 兼容,目前也只有 webstorm 做的比较好,vscode 的插件基本还是不要使用了,如果还是要用 vscode,还是建议关闭所有 ng 插件,真的不好用
主要原因:
优缺点
The text was updated successfully, but these errors were encountered: