当前位置:首页 > React

react如何创建公共组件

2026-01-24 17:30:32React

创建公共组件的步骤

在React中创建公共组件有助于代码复用和维护。以下是具体实现方法:

定义组件文件结构

通常将公共组件存放在src/components目录下。每个组件应单独建立文件夹,包含组件文件(.jsx.tsx)和样式文件(.css.module.css)。例如:

src/
  components/
    Button/
      Button.jsx
      Button.module.css

编写基础组件代码

使用函数组件或类组件方式创建。函数组件是现代React推荐的方式:

import React from 'react';
import styles from './Button.module.css';

const Button = ({ children, onClick, disabled = false }) => {
  return (
    <button 
      className={styles.button} 
      onClick={onClick}
      disabled={disabled}
    >
      {children}
    </button>
  );
};

export default Button;

添加PropTypes类型检查

为组件添加prop类型验证确保正确使用:

import PropTypes from 'prop-types';

Button.propTypes = {
  children: PropTypes.node.isRequired,
  onClick: PropTypes.func,
  disabled: PropTypes.bool
};

使用CSS Modules管理样式

创建对应的样式文件避免类名冲突:

/* Button.module.css */
.button {
  padding: 8px 16px;
  border-radius: 4px;
  cursor: pointer;
}

.button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

导出组件供其他模块使用

确保组件有默认导出:

export default Button;

在其他组件中引用

通过import语句使用公共组件:

import Button from '../components/Button/Button';

function App() {
  return (
    <Button onClick={() => console.log('Clicked')}>
      Submit
    </Button>
  );
}

处理组件默认值和可选props

为可选props设置默认值:

Button.defaultProps = {
  disabled: false,
  onClick: () => {}
};

使用TypeScript增强类型安全(可选)

对于TypeScript项目,可以定义接口:

interface ButtonProps {
  children: React.ReactNode;
  onClick?: () => void;
  disabled?: boolean;
}

const Button: React.FC<ButtonProps> = ({ children, onClick, disabled = false }) => {
  // 组件实现
};

react如何创建公共组件

标签: 组件react
分享给朋友:

相关文章

如何评价react native

如何评价react native

React Native 的优势 跨平台开发效率高 React Native 允许开发者使用 JavaScript 和 React 编写代码,同时生成 iOS 和 Android 应用,大幅减少开发成…

react如何

react如何

React 基础概念 React 是一个用于构建用户界面的 JavaScript 库,专注于组件化开发。通过虚拟 DOM 和高效的渲染机制,React 能够实现高性能的 UI 更新。 安装 R…

Vue组件实现方法

Vue组件实现方法

Vue组件的基本实现方法 Vue组件是Vue.js的核心概念之一,用于构建可复用的UI模块。以下是Vue组件的几种常见实现方式: 单文件组件(SFC) 使用.vue文件格式,将模板、脚本和样式封装…

vue实现水印组件

vue实现水印组件

Vue 水印组件实现 基础水印组件实现 创建一个基础水印组件,通过 props 接收文本、颜色、大小等参数: <template> <div class="watermark-…

vue实现穿梭框树组件

vue实现穿梭框树组件

Vue 穿梭框树组件实现 穿梭框树组件通常结合了树形结构和穿梭框功能,允许用户在左右两栏之间移动树节点数据。以下是基于 Vue 的实现方案: 核心功能设计 数据结构 树形数据通常采用嵌套结构,例如:…

react moment如何使用

react moment如何使用

安装 react-moment 通过 npm 或 yarn 安装 react-moment: npm install react-moment 或 yarn add react-moment…