Reactjs 反应本地元素全局样式

Reactjs 反应本地元素全局样式,reactjs,react-native,Reactjs,React Native,与其单独设置每个元素的样式,不如说我的react本机应用程序中不同页面/组件上许多元素的背景色 通用元素的全局样式的最佳实践是什么?有效的方法。谢谢各位 PS:我使用的是函数而不是类,而且我对react-native还不熟悉。react-native样式基于js对象。因此,您可以在单独的js文件上创建“样式化”对象,并将这些文件导入react组件。由于有时根据状态变量的值更改对象的样式是一个好主意,因此最好在附近有“快速理解”所需的值。这一切都取决于您如何组织代码。例如,下一个代码(来自本机教程

与其单独设置每个元素的样式,不如说我的react本机应用程序中不同页面/组件上许多元素的背景色

通用元素的全局样式的最佳实践是什么?有效的方法。谢谢各位


PS:我使用的是函数而不是类,而且我对react-native还不熟悉。

react-native样式基于js对象。因此,您可以在单独的js文件上创建“样式化”对象,并将这些文件导入react组件。由于有时根据状态变量的值更改对象的样式是一个好主意,因此最好在附近有“快速理解”所需的值。这一切都取决于您如何组织代码。例如,下一个代码(来自本机教程)可以在单独的js文件中声明:

export const styles = StyleSheet.create({
      container: {
        flex: 1,
        justifyContent: 'center',
        alignItems: 'center',
      },
      button: {
        alignItems: 'center',
        backgroundColor: '#DDDDDD',
        padding: 10,
        marginBottom: 10
      }
    })
然后使用导入命令导入:

import {styles} from '.... path to file where you placed styles code ... "

如果您不想使用类继承,您可以编写可以将样式应用于其子级的HOC。在子组件内,从父组件继承所需的特性样式。 BaseStyle是hoc,维护所有组件的css定义。在需要继承的组件上,我们需要通过提供所需的样式道具来使用BaseStyle对其进行包装

function ComponentInheritingStyle() {
  return (
      <BaseStyle style={styles.button}>
          {...this.props.children}
     </BaseStyle>
     );
   }

export const styles = StyleSheet.create({
  button: {
    backgroundColor: 'blue',
    fontSize: '12',
    borderRadius: '4',
  },
  div: {
    border: '2px',
    borderColor: 'lightblue',
    padding: 10,
    marginBottom: 10
  }
})
函数ComponentInheritingStyle(){
返回(
{……这个。道具。孩子们}
);
}
export const styles=StyleSheet.create({
按钮:{
背景颜色:“蓝色”,
字体大小:“12”,
边界半径:“4”,
},
分区:{
边框:“2px”,
边框颜色:“浅蓝色”,
填充:10,
marginBottom:10
}
})
为了更清晰,你可以在课堂上阅读下面的链接。