在带有阴影的 Web 组件中使用@import加载字体是否会重新加载文件?



>我正在使用 Stencil 创建一个原生浏览器 Web 组件,使用影子进行视图封装。

如果在 SCSS 文件的顶部我使用

@import url($url-icons);

这会让每个组件重新下载每个组件实例的字体/图标文件,从而对性能产生负面影响吗?

如果是这样,处理这种共享依赖项的最佳做法是什么?

浏览器对这些字体文件有缓存机制,所以文件"应该"只下载一次(当 devtools 打开时,情况并非如此disable cache,许多开发人员使用(。但这实际上是浏览器的实现细节,而不是 Web 组件的实现细节。

这意味着在 Web 组件中导入字体本身将导致浏览器发出多个请求,这可能会产生额外的成本 - 将仅获取字体一次的责任委托给浏览器。

最好只在 Web 组件 css 中包含font-family定义,并在需要 Web 组件库的应用中或在库 init 方法中(仅(导入一次字体(Stencil您可以将其添加到您的defineCustomElements()调用中(

相关内容

  • 没有找到相关文章

最新更新