angular - 为什么 JIT 需要 Angular 反射 polyfill
问题描述
在Angular browser support page中,关于 JIT 编译和 ES7/reflect polyfill 说:
如果您始终使用 AOT 并且仅使用 Angular 装饰器,则可以删除。
我对此有两点不清楚:
为什么 AOT 不需要使用反射?读取依赖注入的元数据不需要反射吗?
“只使用 Angular 装饰器”是什么意思?
解决方案
为什么 AOT 不需要使用反射?读取依赖注入的元数据不需要反射吗?
是的,AOT 适用于不需要反射的编译版本。AOT 编译器静态解析所有元数据并将其转换为包含所有需要渲染的工厂。
“只使用 Angular 装饰器”是什么意思?
如果使用任何非 Angular 特定的装饰器,则必须包含该 polyfill,因为 AOT 编译器仅转换它知道的装饰器,即@Component
等@Input
@NgModule
。它还会从包中删除这些装饰器。对于其他将在运行时执行的装饰器,我们必须包含该 polyfill。
推荐阅读
- ios - Twilio Video:旋转传出视频流
- oracle-apex - 创建一个将在 apex 中更新数据库表的按钮
- oop - 哪种设计模式允许我实现两个不同的类,每个类都有另一个类的对象列表?
- gdb - GDB:在调用函数之前显示函数的参数
- sql - SQL数据库中如何统计每个用户ID的出现次数
- substrate - 基板官方安装指南
- python - Flask ImportError:无法在heroku上导入名称'app'
- python - [Errno 2]:即使文件存在,也没有此类文件或目录错误
- javascript - 当我尝试向其添加 ++ 运算符时,它在 JS 中不起作用
- clojure - 如何避免 Clojure 中嵌套的“for”函数?