如何在React中编写 class 样式?

180 阅读2分钟

在TypeScript (TSX) 中编写 CSS 样式类有几种方法,包括使用纯 CSS、CSS Modules、Styled Components 等。以下是几种常见方法的示例:

方法 1: 使用纯 CSS

  1. 创建 CSS 文件

    创建一个 CSS 文件,例如 styles.css

    /* src/styles.css */
    .container {
      padding: 16px;
      background-color: #f0f0f0;
    }
    
    .title {
      color: blue;
      font-size: 24px;
    }
    
  2. 在组件中导入 CSS 文件

    在你的 TSX 文件中导入 CSS 文件并使用类:

    import React from 'react';
    import './styles.css';
    
    const MyComponent: React.FC = () => {
      return (
        <div className="container">
          <h1 className="title">Hello, World!</h1>
        </div>
      );
    };
    
    export default MyComponent;
    

方法 2: 使用 CSS Modules

  1. 创建 CSS Module 文件

    创建一个 CSS Module 文件,例如 styles.module.css

    /* src/styles.module.css */
    .container {
      padding: 16px;
      background-color: #f0f0f0;
    }
    
    .title {
      color: blue;
      font-size: 24px;
    }
    
  2. 在组件中导入 CSS Module 文件

    在你的 TSX 文件中导入 CSS Module 文件并使用类:

    import React from 'react';
    import styles from './styles.module.css';
    
    const MyComponent: React.FC = () => {
      return (
        <div className={styles.container}>
          <h1 className={styles.title}>Hello, World!</h1>
        </div>
      );
    };
    
    export default MyComponent;
    

方法 3: 使用 Styled Components

  1. 安装 Styled Components

    如果你还没有安装 Styled Components,请先安装:

    npm install styled-components @types/styled-components
    
  2. 创建和使用 Styled Components

    在你的 TSX 文件中创建并使用 Styled Components:

    import React from 'react';
    import styled from 'styled-components';
    
    const Container = styled.div`
      padding: 16px;
      background-color: #f0f0f0;
    `;
    
    const Title = styled.h1`
      color: blue;
      font-size: 24px;
    `;
    
    const MyComponent: React.FC = () => {
      return (
        <Container>
          <Title>Hello, World!</Title>
        </Container>
      );
    };
    
    export default MyComponent;
    

方法 4: 使用 MUI 的 makeStyles

  1. 安装 Material-UI

    如果你还没有安装 MUI,请先安装:

    npm install @mui/material @emotion/react @emotion/styled
    
  2. 创建和使用样式

    在你的 TSX 文件中创建并使用样式:

    import React from 'react';
    import { makeStyles } from '@mui/styles';
    
    const useStyles = makeStyles({
      container: {
        padding: '16px',
        backgroundColor: '#f0f0f0',
      },
      title: {
        color: 'blue',
        fontSize: '24px',
      },
    });
    
    const MyComponent: React.FC = () => {
      const classes = useStyles();
    
      return (
        <div className={classes.container}>
          <h1 className={classes.title}>Hello, World!</h1>
        </div>
      );
    };
    
    export default MyComponent;
    

选择合适的方法

每种方法都有其优点和适用场景。选择哪种方法取决于你的项目需求和个人偏好。如果你正在使用 Material-UI,使用 MUI 的 makeStylesstyled 是一个不错的选择。如果你希望实现组件级别的样式隔离,可以选择 CSS Modules 或 Styled Components。纯 CSS 适用于简单项目或不需要样式隔离的场景。