当前位置:首页 > React

如何快速构建react组件库

2026-01-25 01:59:27React

快速构建 React 组件库的方法

使用脚手架工具初始化项目

推荐使用 create-react-appVite 快速初始化项目。以 Vite 为例:

npm create vite@latest my-component-library --template react
cd my-component-library

配置组件库结构

src 目录下创建 components 文件夹,每个组件独立成文件夹,包含以下文件:

  • ComponentName.tsx(组件逻辑)
  • ComponentName.stories.tsx(Storybook 文档)
  • index.ts(导出组件)

示例目录结构:

src/
  components/
    Button/
      Button.tsx
      Button.stories.tsx
      index.ts

设置样式方案

可选择 CSS Modules、Styled-components 或 TailwindCSS。以 CSS Modules 为例:

// Button.tsx
import styles from './Button.module.css';

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

配置 Storybook 文档

安装 Storybook:

npx storybook@latest init

修改 .storybook/main.js 扫描组件:

module.exports = {
  stories: ['../src/components//*.stories.tsx'],
};

配置打包工具

使用 Rollup 或 Vite 打包组件库。以 Rollup 为例:

npm install rollup @rollup/plugin-node-resolve @rollup/plugin-commonjs @rollup/plugin-typescript --save-dev

创建 rollup.config.js

import commonjs from '@rollup/plugin-commonjs';
import resolve from '@rollup/plugin-node-resolve';
import typescript from '@rollup/plugin-typescript';

export default {
  input: 'src/index.ts',
  output: {
    dir: 'dist',
    format: 'esm',
  },
  plugins: [resolve(), commonjs(), typescript()],
};

导出组件库

src/index.ts 中集中导出所有组件:

如何快速构建react组件库

export { default as Button } from './components/Button';

发布到 npm

  1. package.json 中设置:
    {
    "name": "my-component-library",
    "version": "1.0.0",
    "main": "dist/index.js",
    "module": "dist/index.esm.js",
    "types": "dist/index.d.ts",
    "files": ["dist"]
    }
  2. 执行发布:
    npm login
    npm publish

维护与更新

  • 使用 Changesets 管理版本号
  • 配置 GitHub Actions 自动化测试和发布
  • 通过 Storybook 持续更新文档

标签: 组件快速
分享给朋友:

相关文章

vue实现折叠组件

vue实现折叠组件

Vue 折叠组件实现方法 基于 v-show 和事件触发 通过 v-show 控制内容的显示与隐藏,结合点击事件切换状态。 <template> <div> &…

vue动态组件实现

vue动态组件实现

Vue 动态组件实现方法 使用 component 标签与 is 属性 通过 Vue 内置的 <component> 标签和 is 属性实现动态组件切换。is 的值可以是已注册的组件名或导…

vue 实现组件刷新

vue 实现组件刷新

组件局部刷新 在Vue中实现组件刷新可以通过强制重新渲染组件来实现。常用的方法有以下几种: 使用v-if指令 通过切换v-if条件触发组件的销毁和重建 <template> <…

vue 实现弹窗组件

vue 实现弹窗组件

Vue 弹窗组件实现 基础弹窗组件结构 创建一个名为Modal.vue的文件,定义弹窗的基础结构和样式: <template> <div class="modal-mask"…

vue实现布局组件

vue实现布局组件

Vue 实现布局组件的方法 基础布局组件结构 使用 Vue 的单文件组件(SFC)创建一个基础布局组件。布局组件通常包含头部、侧边栏、主体内容和页脚。 <template> <…

vue实现表格组件

vue实现表格组件

Vue 表格组件实现方法 基础表格实现 使用 Vue 的模板语法可以快速实现基础表格功能。通过 v-for 指令循环渲染表格数据。 <template> <table>…