PageLayoutService 实现里有一个 cms 依赖:CmsService.

当前页面元数据信息,通过 cms.getCurrentPage 维护。

从 routingService 里拿到当前页面上下文,再从 central 的 ngRx store 里抽取实际数据:

routingService.getPageContext 的实现:从 store里读取。

关于 TypeScript 的箭头函数,下列两种写法都正确:

第一种:没有给该函数指定返回类型,TypeScript 编译器自动推导。

let fun5 = (data:number)=> data * data;

第二种:完整写法。第一个箭头后面的 number,表明返回类型为 number.

let fun5:(data:number) =>number = (data:number)=> data * data;

select 接受一个输入参数:RoutingSelector.getNextPageContext,该参数一看就是一个函数:输入类型为 any,输出类型为 PageContext:

getNextPageContext 的类型定义正好和 select 接口里规定的 mapFn 的类型定义完全一致:

(state: any) => PageContext

select<any, PageContext>(mapFn: (state: any) => PageContext): (source$: Observable) => Observable

select 本身的类型定义:返回一个函数,该函数接收的输入参数是类型为 T 的 Observable,输出是类型为 K 的 Observable 对象。

先假设 routingState 已经拿到了,先把 mapper 函数写好。然后再回过头来,解决如何拿到 routingState,即 getRouterState 要解决的问题。

同理:

更多Jerry的原创文章,尽在:“汪子熙”:

SAP Spartacus 如何获得当前渲染页面的 CMS 元数据相关推荐

  1. Vue是如何渲染页面的,渲染过程以及原理代码

    Vue是如何渲染页面的,渲染过程以及原理代码:https://www.cnblogs.com/ypinchina/p/7238402.html 转载于:https://www.cnblogs.com/ ...

  2. SAP Spartacus 手动开启服务器端渲染 (SSR) 所必须的步骤

    使用服务器端渲染,我们可以保证搜索引擎,与浏览器的Javascript禁用,或没有JavaScript的浏览器仍然可以访问我们的网站内容. https://b2bspastore.cg79x9wuu9 ...

  3. SAP Spartacus开启SSR服务器端渲染之后,和默认客户端渲染的差异比较

    客户端渲染(生产模式),首个HTML请求:5.7KB SSR渲染,首个HTML请求:28.7KB 在SSR模式里,服务器返回的HTML,所有的源代码都已经生成完毕: 而CRS生产模式渲染情况下,cx- ...

  4. 必考面试题:浏览器怎么渲染页面的

    在分析浏览器渲染过程之前,我们先了解进程和线程: 什么是进程? 进程是CPU进行资源分配的最小单位 什么是线程? 线程是CPU调度的最小单位,是建立在进程的基础上的运行单位,共享进程的内存空间,通俗点 ...

  5. 浏览器是如何渲染页面的?

    渲染的流程如下: 1.解析HTML文件,创建DOM树. 自上而下,遇到任何样式(link.style)与脚本(script)都会阻塞(外部样式不阻塞后续外部脚本的加载). 2.解析CSS. 优先级:浏 ...

  6. SAP Spartacus Header区域的渲染逻辑

    文件:projects\storefrontlib\src\cms-structure\page\page-layout\page-layout.service.ts 9个一模一样的response: ...

  7. SAP Spartacus服务器端渲染模式下的调试方法

    在使用本文章介绍的步骤进行SAP Spartacus Storefront在服务器端渲染模式(SSR)下的调试之前,请您确保已经按照如下帮助文档的介绍,已经成功启用了服务器端渲染: https://s ...

  8. SAP Spartacus Customizing CMS Components

    Customizing CMS Components Spartacus 店面是基于 JavaScript 的,因此它由大量细粒度的 JavaScript 组件组成. 但是,有一种特殊的组件来呈现 C ...

  9. SAP Spartacus checkout页面的入口逻辑

    checkout url: http://localhost:4200/electronics-spa/en/USD/checkout/shipping-address 首先读取checkout页面的 ...

最新文章

  1. Matlab数据的可视化 -- 简易表面图
  2. 刘启成_使用if及变量编写LAMP管理脚本
  3. 低功耗STM32F411开发板(原理图+PCB源文件+官方例程+驱动等)
  4. 当代家长现状。。 | 今日最佳
  5. mysql查询含有某个值的表_MYSQL查询数据表中某个字段包含某个数值
  6. 利用动态规划(DP)解决 Coin Change 问题
  7. __main代码分析
  8. c#读蓝牙数据_C#读取BWT901CL蓝牙传感器的数据
  9. 剑指offer三从头到尾打印链表
  10. Ajax的一个体验:Ajax.NET - A free library for the Microsoft .NET Framework
  11. ubuntu查看进程和结束进程
  12. idea 2018 破解教程
  13. linux 网卡爽ip,linux服务器双网卡爽IP实现双线
  14. 我的世界java无限水_我的世界基岩版:如何获得无限水?这里有5种方法,最后一种无中生有...
  15. 学习笔记(2):Java面试:核心考点突击大串讲-Redis的持久化机制
  16. MobaXterm_Portable的快速复制粘贴
  17. 设计模式 | 中介者模式(详解)
  18. 随机过程 自相关函数 互相关函数自协方差矩阵 互协方差矩阵的区别联系
  19. aop - spring如何选择、创建代理bean
  20. 单片机GPRS模块与web端通信

热门文章

  1. WebAPi添加常用扩展方法及思维发散
  2. Android中BroadCast与Activity之间的通信
  3. 微信小程序,前端大梦想(七)
  4. hadoop中map的个数
  5. IP地址便捷修改器 V3.5 绿色版
  6. CF613D Kingdom and its Cities
  7. linux安装php7.2.7
  8. webview js 与 java 调用参数问题。
  9. JAVA笔记:死锁的详细解释
  10. Java开源权限管理中间件