css - 使用 Create React App JS 包预加载字体
问题描述
尽管遵循了在我的 React 应用程序中自托管自定义字体的推荐方法(使用 Create React App 引导,未弹出),但我在加载时遇到了无样式文本的闪烁(下面的 GIF 变慢了):
我的文件夹结构是:
- src
-- fonts
--- custom-font.woff
- index.scss
// index.scss
@font-face {
font-family: "CustomFont";
src: url("./fonts/custom-font.woff") format("woff");
}
我努力了:
- 将字体移动到
public
带有rel="preload"
标签的文件夹中index.html
,但是当包含在规则中时index.scss
,src
文件夹中的 无法解析模块。@font-face
- 在组件中添加加载状态,在加载组件时使用
useEffect
钩子设置加载状态,但似乎只有在效果发生后才加载字体,所以问题仍然存在。
是否有推荐的方法来加载停止 FOUT 的字体,或者延迟组件渲染直到字体完全加载?
请注意:
- 我对 Google 字体或其他 CDN 不感兴趣,只对自托管字体感兴趣
- 我不想弹出
解决方案
推荐阅读
- spring - Spring Boot 中的 PropertySource 似乎不起作用
- nginx - Kong/Nginx 来了奇怪的上游主机
- javascript - 在我删除动态输入时做出反应,输入未在浏览器上显示正确的值
- function - 游戏制作者功能中的 MACROS 抛出错误
- selenium - Java Selenium'无法解析符号测试'TestNG
- google-apps-script - 谷歌电子表格的基于时间的触发器
- flutter - 使用 iOS 模拟器测试 plaid_flutter 时没有弹出键盘
- amazon-web-services - Codebuild 中的 Codepipeline S3 存储桶访问被拒绝
- sql - 根据开始/结束选择指定日期之前和之后的连续日期计数
- django - Django没有完全按照表格中输入的方式存储数据