日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一些关于 SAP Spartacus 组件和模块延迟加载的问题和解答

發布時間:2023/12/19 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一些关于 SAP Spartacus 组件和模块延迟加载的问题和解答 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 僅執行組件延遲(Component lazy load)加載是不是不起作用?進行這項工作是否需要任何設置? 考慮到我們在整個網站上使用的共享組件,我們想采用這種方法(即組件延遲加載)。這樣,我們可以只測試每個組件。
  • 回答:組件延遲加載有效,但是在更復雜的組件(使用不同的指令和組件)的情況下更加困難,因為動態導入僅針對組件類 Component class,而不是 Angular 模塊。如果這些組件類中使用到的指令和其他組件并沒有被加載,則運行時會報各種錯誤。

    這些復雜情況的一種解決方法是將模塊(module definition)定義嵌入到與組件本身相同的文件,即在 Component 實現文件里,再定義一遍模塊。因此模塊將與組件一起加載。

  • 如果我們繼續選擇模塊延遲加載,我們如何從插槽延遲加載沒有與 CMS 組件映射的 Angular 組件?
  • 回答:它目前在 Angular 框架中不是開箱即用的。 默認情況下,Angular 支持路由延遲加載,對于像 Spartacus 這樣的 CMS 驅動的站點,我們不能使用基于路由的方式來延遲加載一個 Angular 組件,因為我們在構建時不知道指定路由需要哪些組件。

    這就是 Spartacus 利用 CMS 映射作為支持延遲加載的機制的原因。 簡而言之,我們可以得到一個提示(在導航到它時)指定頁面需要哪些組件,然后使用 CMS 映射配置,延遲加載所需的組件或功能。

  • 模塊內的靜態導入是否會影響組件/模塊延遲加載? 例如:我們在 HomePage 模塊中導入了 iconModule 并且當前主頁模塊正在 app.module 中延遲加載。 在這種情況下,組件延遲加載不起作用。 模塊延遲加載僅適用于 home 模塊
  • 回答:如果您動態(惰性)和靜態地導入一個入口點,那么構建器(webpack)將使其靜態捆綁。 這是一個常見的情況,為什么延遲加載可能不起作用,在某種程度上,應用程序應該仍然可以工作,如果配置正確,代碼拆分機制將不會對這段代碼起作用,并且不會生成單獨的 JS 塊。

    但是,靜態導入可以在單獨的延遲加載模塊之間共享。如果這些導入僅在延遲加載的模塊之間共享,則將創建特殊的共享塊,它將加載兩個功能。 如果導入也與直接在主塊(app.module)中導入的某些組件或模塊共享,那么代碼將被靜態捆綁到主塊中。

  • 為了測試目的,我們嘗試了組件和模塊延遲加載。 它們都不能完全工作。 即使在添加了 provideDefaultConfig(b2cLayoutConfig) 之后,盡管添加了這個,UI 仍然會在奇怪的地方中斷。
  • 回答:很難從這個描述中猜測潛在的問題。 一般來說,如果延遲加載不起作用,最好的辦法是一步一步地做,從很少的組件開始,并識別潛在的問題。 即便如此,仍然會有部分代碼需要立即加載,例如應用程序初始化程序、http 攔截器等。

    從 Spartacus 3.0 開始,我們開始發布帶有默認延遲加載功能的整個庫。所有新功能都是以這種方式創建的 + 我們正在繼續移動現有功能,同時改進機制和技術(但仍然是相同的機制)。

    總結

    以上是生活随笔為你收集整理的一些关于 SAP Spartacus 组件和模块延迟加载的问题和解答的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。