javascript - React - 全局样式
问题描述
(我认为这不是基于意见的,我是要求一些东西的共同使用,以实现良好的重构代码)
如何在 React 项目中正确使用全局样式?我看到很多人都在使用它,但是这个想法是什么?我的意思是,这是一个定义超通用样式的模块,还是只是一个文件,我们在其中编写其他组件中常见的样式?
目前,这是我的项目结构:
app/
components/
Profile/
Header.js
styles/
styles.js
screens/
Profile/
Profile.js
EditProfile.js
styles/
styles.js
theme/
theme.js
styles/
globalStyles.js
utils/
lib/
...
到目前为止,我只是在组件中编写所有样式,并且拥有长的样式文件并不是很好。这就是为什么我决定将特定样式从外部模块中的每个组件移动(特定于每个概念/组件)。
但是,globalStyles.js 呢?开发人员为什么要使用它?
现在,我正在考虑编写这样的代码,但似乎非常糟糕,我的意思是,就像我错误地应用“全局样式”的想法一样,因为这些样式看起来很简单,一个应用程序可以完美具有多种类型的文本,具有多个维度,这可能是有限的 UI 或巨大的 globalStyles 文件的结果......
import { StyleSheet } from "react-native";
export default StyleSheet.create({
/*
Flex column containers ???
*/
flexContainer: {
flex: 1,
},
flexCenteredContainer: {
flex: 1,
justifyContent: "center",
alignItems: "center",
},
flexVerticallyCenteredContainer: {
flex: 1,
justifyContent: "center",
},
flexHorizontallyCenteredContainer: {
flex: 1,
alignItems: "center",
},
/*
Flex row containers ????
*/
flexRowContainer: {
flexDirection: "row",
},
flexRowCenteredContainer: {
flexDirection: "row",
justifyContent: "center",
alignItems: "center",
},
flexRowVerticallyCenteredContainer: {
flexDirection: "row",
alignItems: "center",
},
flexRowHorizontallyCenteredContainer: {
flexDirection: "row",
justifyContent: "center",
},
flexReversedRowContainer: {
flexDirection: "row-reverse",
},
flexReversedRowCenteredContainer: {
flexDirection: "row-reverse",
justifyContent: "center",
alignItems: "center",
},
flexReversedRowVerticallyCenteredContainer: {
flexDirection: "row-reverse",
alignItems: "center",
},
flexReversedRowHorizontallyCenteredContainer: {
flexDirection: "row-reverse",
justifyContent: "center",
},
/*
Texts, ... ???
*/
});
解决方案
推荐阅读
- java - 当我使用 Camera2Api 拍照时,Android 图像被旋转
- mongodb - Docker 上的 MongoDB 错误:将集合 config.transactions 标记为集合版本:
- spring-boot - 使用 WebClient 设置超时
- javascript - 在 HTML 中动态添加 js 脚本标记元素 - 幕后发生了什么?
- c# - 使用实体框架的外键问题
- javascript - Antd 选择搜索框不渲染匹配项
- ms-access - Ms-Access 2016 在 DAO.Recordset OpenRecordset(
- jquery - JQuery 上下滑动不适用于慢速效果
- linux - DMA Engine连续传输应该怎么做?
- karma-runner - 带有 Chrome 83 的 HeadlessChrome 与 Karma 断开连接