【发布时间】:2025-12-19 01:25:20
【问题描述】:
我正在使用带有 React on Rails 的 TypeScript。
我的 SCSS 文件与 tsx 文件位于同一文件夹中,此 scss 文件导入所有必要的模块。所以我最后有一个很大的 css 文件。
我也有 42 个组件。每个组件都有一个呈现的 html 代码。所以,我在这样的组件中导入样式:
import * as styles from 'main.module.scss';
问题是,我的页面加载速度很快。但是样式有点延迟。起初我看到没有样式的 html dom 对象,然后应用了样式。这让我很奇怪,React 会加载我的 scss 样式 42 次strong>还是只加载一次并在每个组件上重复使用?
如果不是,我如何全局导入 styles 并在所有组件中使用?
示例组件
import * as styles from 'main.module.scss';
...
render() {
return (
<div className={styles.container}>
<div className={styles.pageInner}>
content...
</div>
</div>
)
}
【问题讨论】:
-
只需要在顶层js文件中导入全局样式,例如
app.js,只需要在每个组件中每次都加载的模块css。 -
TypeScript 是严格的,所以当我在顶层导入时,子组件看不到样式变量。我需要一直导入
-
你能粘贴一些代码来展示你如何在组件中使用样式吗?我猜你混合了全局 css 和模块 css。
-
添加了一个示例用法
-
顺便说一句,它是
main.module.scss,我用打字扩展名导出样式
标签: reactjs typescript