当前位置:网站首页>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 函数了:

边栏推荐
- 求解多元多次方程解的个数
- Based on php tourism website management system acquisition (php graduation design)
- 漫长的投资生涯
- Based on php online examination management system acquisition (php graduation design)
- MySQL related knowledge
- Based on php Xiangxi tourism website management system acquisition (php graduation design)
- Image fusion GANMcC study notes
- 【建议收藏】ヾ(^▽^*)))全网最全输入输出格式符整理
- 小程序--分包
- Small program -- subcontracting
猜你喜欢

User Experience | How to Measure User Experience?

数字图像处理 第十二章——目标识别

Homework 8.1 Orphans and Zombies

shell programming conventions and variables

The difference between groupByKey and reduceBykey

【C语言实现】最大公约数的3种求法

ARFoundation Getting Started Tutorial U2-AR Scene Screenshot Screenshot

ImportError: `save_weights` requires h5py. Problem solved

基于php酒店在线预定管理系统获取(php毕业设计)

C语言必杀技3行代码把运行速度提升4倍
随机推荐
0DFS Medium LeetCode6134. Find the closest node to the given two nodes
Pagoda application experience
递归(各经典例题分析)
微软校园大使喊你来秋招啦!
WEB 渗透之端口协议
Image fusion GANMcC study notes
基于php在线考试管理系统获取(php毕业设计)
基于php影视资讯网站管理系统获取(php毕业设计)
模拟数据之mockjs
long investment career
groupByKey和reduceBykey的区别
熟悉的朋友
AQS
(*゚ヮ゚)*【精品C语言整理】*(゚ヮ゚*)女盆友缠着你让你教她写代码怎么办?安排,三万字博文带你走遍C语言,从此不再害怕编程
安全第五次课后练习
Spark shuffle tuning
基于php旅游网站管理系统获取(php毕业设计)
线上故障排查方案
宝塔应用使用心得
线程池分析