当前位置:网站首页>SAP Spartacus NgExpressEngineDecorator 的工作原理
SAP Spartacus NgExpressEngineDecorator 的工作原理
2022-08-01 21:54:00 【华为云】
首先看这个 class 的 get 定义:
接收两个输入参数,类型为:
- NgExpressEngine
- SsrOptimizationOptions
返回一个包装后的 NgExpressEngine
NgExpressEngine 是 Spartacus 自己创建的类型,本质是一个函数,输入参数为 NgSetupOptions,返回类型为 NgExpressEngineInstance.
后者又是一个函数,作为 ExpressEngine 的执行实例,接收 filePath,option 和 callback 作为参数。
一一对应:
返回一个新的函数,接收 E 即标准的 NgExpressEngine 的输入参数作为输入参数,同时将原来的两个输入参数 NgExpressEngine 和 Spartacus optimization 值存储起来:
稍后,在 server.ts 里,我们调用这个被包装之后的 ngExpressEngine,此时,输入参数为一个对象,字段为 bootstrap,这个对象就是图 E:NgSetupOptions
此时,执行函数体:
Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象分配到目标对象。它将返回目标对象。
调用 get 方法时传入的值,通过闭包存储在此:
三个点,就是将若干对象的不同名字段进行合并,最终结果:
其中闭包里的第一个输入参数,即是标准的 ngExpressEngine:
这里就是 Angular 标准的实现了,我们不操心:
注意返回的类型:
创建 OptimizationEngine 实例:
最后,返回一个新的函数 renderResponse,且该函数执行时,执行上下文为 OptimizedSsrEngine 本身:
从现在开始,this.engines 指向 Spartacus 自己的 renderResponse 函数了:
边栏推荐
- Scala practice questions + answers
- 高等代数_证明_矩阵的行列式为特征值之积, 矩阵的迹为特征值之和
- 如何防范 DAO 中的治理攻击?
- 教你VSCode如何快速对齐代码、格式化代码
- 19 Lectures on Disassembly of Multi-merchant Mall System Functions - Invoice Management on the Platform
- 关于npm的那些事儿
- 找工作必备!如何让面试官对你刮目相看,建议收藏尝试!!
- AI应用第一课:支付宝刷脸登录
- Getting Started Database Days4
- FusionGAN:A generative adversarial network for infrared and visible image fusion article study notes
猜你喜欢
User Experience | How to Measure User Experience?
FusionGAN:A generative adversarial network for infrared and visible image fusion article study notes
基于php在线音乐网站管理系统获取(php毕业设计)
感觉自己好傻
今日睡眠质量记录74分
基于php旅游网站管理系统获取(php毕业设计)
Based on php online music website management system acquisition (php graduation design)
scikit-learn no moudule named six
求解多元多次方程解的个数
图像融合GANMcC学习笔记
随机推荐
Spark practice questions + answers
【C语言实现】两种计算平均成绩题型,博主精心整理,值得一读
入门数据库Days4
基于php影视资讯网站管理系统获取(php毕业设计)
leetcode 204. Count Primes 计数质数 (Easy)
越长大越孤单
seaborn笔记:可视化统计关系(散点图、折线图)
基于php在线考试管理系统获取(php毕业设计)
shell specification and variables
教你VSCode如何快速对齐代码、格式化代码
图像融合GANMcC学习笔记
MySQL相关知识
Implementation principle of VGUgarbage collector (garbage collector)
基于php在线音乐网站管理系统获取(php毕业设计)
找工作必备!如何让面试官对你刮目相看,建议收藏尝试!!
关于npm的那些事儿
ImportError: `save_weights` requires h5py.问题解决
Advanced Algebra_Proof_The algebraic multiplicity of any eigenvalue of a matrix is greater than or equal to its geometric multiplicity
Scala practice questions + answers
ARFoundation Getting Started Tutorial U2-AR Scene Screenshot Screenshot