reactjs - React 样式最佳实践。全局或组件级别
问题描述
我正在做反应。通常我所做的是将我所有的样式设置在一个单独的文件中,也就是 global 。我读到还有其他一些方法,如 JS 中的组件级样式或 css,但无法得出结论我应该使用哪一个?
只是想知道哪种方式适合什么需要..
解决方案
可以选择使用样式组件、情感或其他 CSS-in-JS 框架。我认为这些都是一个好的开始。这在样式组件中看起来像这样。
const StyledDiv = styled.div`
border: 1px solid red;
`
// react code
return <StyledDiv>Content</StyledDiv>
它非常简单,所以我认为从那里开始是一个不错的选择。我个人的选择是使用 CSS-Modules(带有 Scss)。Create-React-App 确实支持它。你所做的就是编写普通的 CSS 或 SCSS 并导入它。Webpack 将从这些 CSS 文件中生成作用域类名。看起来像这样。
// styles.module.scss
.StyledDiv {
border: 1px solid red;
}
// component.js
import styles from './styled.module.scss'
return <div className={styles.StyledDiv}> content </div>
这允许您仍然使用 Sass 中的 partials 和 mixin,同时仍然像在 styled-components 中一样对 className 进行限定。这些将是我推荐的选项。
回答你的问题。我不建议使用全局样式,这可能会导致样式和覆盖不同样式的多个问题。组件范围更好。
推荐阅读
- javascript - 如何使用 react-native-svg 循环图像
- azure-automation - 如何使用 ARM 模板在自动化中创建 AzureRunAsConnection
- java - SpringBatch 步骤没有被调用
- ios - Xcode UIDragSession 中断音频线程
- c# - Java.Lang.RuntimeException:在 S7 移动设备上
- php - 使用 Management API 在 Google Analytics 中读取非抽样报告
- git - git 忽略写权限的变化
- python-3.x - spark magic - 以字符串形式输入 sql 上下文
- css - 如何删除引导网格中列之间的空格?
- java - 使用 org.apache.commons.net.ftp.FTPSClient 上传文件