CMS page API 负责确定 template 显示哪些 slots,slots 显示哪些 Component:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OtPqTaxm-1635227915586)(https://upload-images.jianshu.io/upload_images/2085791-10b538921bcb2566.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]
在 Spartacus layout-config.ts 里,也能定义每个 template 应该显示哪些 slots:
并且能够定义一些全局 section 比如 header,footer 里显示的内容:
在 Spartacus 层面 layout-config.ts 里定义的 pageTemplate - slots 的关系,相比 CMS 后台具有更高的优先级。
从 layoutSlots 这个数据结构的 where used list 也能看出,Spartacus 代码对它全是读操作,而没有写操作,证明 CMS page API 返回的数据,作用更大的应该是 slots 里包含的 Component 信息,这个是 Spartacus 层并未维护的。
更多Jerry的原创文章,尽在:"汪子熙":