angular学习小结
angular 依赖注入是angular的核心思想
StaticProvider 和 Injector 通过Injector.create将StaticProvider转化为Injector
create(options: {providers: StaticProvider[], parent?: Injector, name?: string}): Injector
复制代码
PlatformRef是什么?
平台实例描述,createPlatform和createPlatformFactory工厂创建生成,也可以理解成提供特定依赖注入项目的集合
- createPlatform
通过传入Injector创建PlatformRef
createPlatform(injector: Injector): PlatformRef
复制代码
- createPlatformFactory
通过StaticProvider创建PlatformRef,内部调用createPlatform创建PlatformRef
createPlatformFactory(parentPlatformFactory: ((extraProviders?: StaticProvider[]) => PlatformRef) | null,name: string, providers: StaticProvider[] = []
): (extraProviders?: StaticProvider[]) => PlatformRef
复制代码
PlatformRef启动后生成NgModuleRef
export class PlatformRef {// 通过NgModuleFactory启动,aotbootstrapModuleFactory<M>(moduleFactory: NgModuleFactory<M>,options?: BootstrapOptions): Promise<NgModuleRef<M>>;// 通过NgModule启动,jitbootstrapModule<M>(moduleType: Type<M>,compilerOptions: (CompilerOptions & BootstrapOptions) |Array<CompilerOptions & BootstrapOptions> = []): Promise<NgModuleRef<M>>
}
复制代码
NgModuleRef
ngModule实例,可以由NgModuleFactory.create生成,可以理解为局部/模块内依赖注入项目集合,NgModule的存在一定程度上解决Injector的配置使用问题。直接引用其他NgModule就能拿到此NgModule所注册的Injector。
ComponentFactoryResolver
组件工厂提供者,由NgModuleRef注入,ComponentFactoryResolver.resolveComponentFactory生成ComponentFactory
ComponentFactory
组件工厂,ComponentFactory.create创建ComponentRef
create(injector: Injector, projectableNodes?: any[][], rootSelectorOrNode?: string|any,ngModule?: NgModuleRef<any>
): ComponentRef<C>;
复制代码
- ComponentFactory_:ComponentFactory的实现
ComponentRef
组件实例描述,ComponentRef.hostView获取ViewRef,ComponentRef.changeDetectorRef获取ChangeDetectorRef
- ComponentRef_: ComponentRef的实现
ViewRef 和 ChangeDetectorRef
ViewRef:视图实例描述, ChangeDetectorRef:变化检测实例描述,用于控制变化检测
angular学习小结相关推荐
- 原生小程序学习小结,mpvue+mpvue-weui+fyl.js小程序项目搭建笔记
官方文档:https://developers.weixin.qq.... 学习小结: 1.小程序.订阅号及服务号都是在微信公众平台的体系下,但小程序本身与订阅号及服务号是完全独立的,需要重新注册: ...
- Python - 输出格式 (学习小结)
Python - 输出格式 (学习小结) Bu.xing 利用现代手段,创建学习家园 关注他 1 人赞同了该文章 Python 输出格式 我们常说的输出格式分两种含义: # 一种是指数据在屏幕上的显 ...
- Page 的生命周期学习小结
(以前我在 csdn 写的翻译文章,现在转到这里来.) Page 的生命周期学习小结 原文链接:Page Events: Order and PostBack 作者:Paul Wilson 翻译:木野 ...
- c语言基本类型学习小结
基本类型学习小结 环境: Dev-C++ 4.9.6.0 (gcc/mingw32), 使用-Wall编译选项 基本类型包括字节型(char).整型(int)和浮点型(float/double). 定 ...
- python中字典和集合的区别_Python中字典和集合学习小结
映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引 与序列不同,映射是无序的,通过键进行索引 任何不可变对象都可用作字典的键,如字符串.数字.元组等 包含可变对象的列表. ...
- 【转载】Hyperledger学习小结
Hyperledger学习小结 自学Hyperledger Composer也有段时间了,是时候对所学的知识总结一下了.因为没有实际项目参与的话,差不多也就到此为止了.后续可能会去了解一下以太坊的技术 ...
- 图片裁剪功能学习小结
图片裁剪功能学习小结 近期有需要使用图片裁剪的功能,在使用插件和自己写裁剪组件之间犹豫了很久,后来根据需求经过反复的考虑,还是自己封装吧,毕竟自己动手,丰衣足食,对吧?嗯,??????是的!最后生成裁 ...
- pthread多线程编程的学习小结
pthread多线程编程的学习小结 pthread 同步3种方法: 1 mutex 2 条件变量 3 读写锁:支持多个线程同时读,或者一个线程写 程序员必上的开发者服务平台 -- DevStore p ...
- ShaderLab学习小结(十九)RenderToCubemap创建能反射周围环境的效果
继续用"ShaderLab学习小结(十八)cubemap"中所做的shader 想要让它能对周围的环境进行反射 思路就是要让它的cubemap里的内容是周围环境的映射 shader ...
最新文章
- 同时测试多个服务是否存活的脚本[shell和perl]
- IDE-Android Studio -FAQ-使用习惯(不断更新 欢迎留言)
- 内含下载 | Pokemon GO:20年前的IP为什么还能引爆朋友圈?
- Linux——查看硬件配置命令
- [转]Redis集群的配置
- 336. Palindrome Pairs 回文对
- 实现暂停一秒输出的效果_从暂停游戏联想到的
- CPU占用率是什么?
- linux树形看磁盘,2 - 3、Linux—磁盘分区和挂载【2021-3-3】
- 《嵌入式系统项目分析入门与实践》 读后感(1)
- 基于opencv利用霍夫变换实现圆形物体的检测
- 点菜单项在面板中打开并判断是否打开
- AJax视频教程适高级篇+源码(2G)25讲
- 信创环境下密码强度规则:设置密码长度为6至20位,包含大、小写字母、数字、特殊字符组合
- matlab字号单位是磅吗,Office软件中字体“号”与“磅”的关系
- 素数五个为一行的_帕斯卡三角形与素数
- Java项目:小区物业管理系统(java+Springboot+ssm+mysql+maven+jsp)
- 手机回收ATM面世,无人回收会成为下一个风口吗?
- 安卓Activity的生命周期函数详解
- Linux双网卡绑定bond0(单IP)
热门文章
- Android考勤日历控件
- 浪潮信息以新型云基础设施赋能新能源行业 助力行业发现新动能
- 创维显示屏幕配啥图像服务器好,创维显示器和aoc显示器哪个好
- 网易云直播 —— 会议系统开发前言
- 弘辽科技:淘宝店铺什么是B类违规?B类违规扣多少分?
- 熟悉mysql基本数据库操作系统_数据库系统原理(第四章:SQL与关系数据库基本操作 )...
- 唤醒数据价值,惟客数据打造客户经营数字化闭环 | 爱分析调研
- 中英文说明书丨艾美捷CD8α体内抗体相关研究方案
- OpenCV 保边滤波器 各向异性扩散滤波(Anisotropic Filter)
- 苹果 android专利,苹果新专利:类似Android但更复杂的图形解锁