SAP Spartacus的OccCmsPageNormalizer
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                SAP Spartacus的OccCmsPageNormalizer
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                所有經過http請求從Commerce Cloud后臺到Spartacus前臺渲染的數據,都會經歷下列這個generic步驟:
 
CMS page數據的normalize過程:
let OccCmsPageNormalizer = class OccCmsPageNormalizer {convert(source, target = {}) {this.normalizePageData(source, target);this.normalizePageSlotData(source, target);this.normalizePageComponentData(source, target);this.normalizeComponentData(source, target);return target;}第一步:NormalizePageData,給page打上load時間戳:
第二步:normalizePageSlotData
按照position給target設置鍵值對:
第三步: normalizePageComponentData
normalizePageComponentData(source, target) {for (const slot of source.contentSlots.contentSlot) {if (slot.components.component &&Array.isArray(slot.components.component)) {for (const component of slot.components.component) {const comp = {uid: component.uid,typeCode: component.typeCode,properties: component.properties,};if (component.typeCode === CMS_FLEX_COMPONENT_TYPE) {comp.flexType = component.flexType;}else if (component.typeCode === JSP_INCLUDE_CMS_COMPONENT_TYPE) {comp.flexType = component.uid;}else {comp.flexType = component.typeCode;}target.page.slots[slot.position].components.push(comp);}}}}第四步normalizeComponentData執行完畢之后,target結構包含的就是前端Spartacus處理起來比較方便的數據結構:
 
每個slot有slot id,每個slot id對應Components數組,每個Component由uid,typeCode和flexType唯一標識:
Component數組里有Component的詳細數據:
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
 
總結
以上是生活随笔為你收集整理的SAP Spartacus的OccCmsPageNormalizer的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: SAP Spartacus OccCms
- 下一篇: 资本公积的三个来源
