Skip to content

Commit 80d56c5

Browse files
docs: improve component-development doc (#335)
1 parent 9199d87 commit 80d56c5

File tree

1 file changed

+59
-61
lines changed

1 file changed

+59
-61
lines changed

docs/guide/componentDev.md

Lines changed: 59 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -7,84 +7,82 @@ group: 研发
77

88
### 几点规范
99

10-
- 组件 API 变量命名规范,尽量采用驼峰式、可语义化的变量名
11-
- 组件内部 CSS 命名规范,在采用 [BEM](https://dtstack.yuque.com/rd-center/sm6war/clgpb7) 规范的基础上,使用 dt-react-component 标识性前缀 **dtc-**
10+
- 命名规范:组件的名称应该使用大驼峰命名法,且尽量使用有意义的名字,并且应该与文件名相同。
11+
- 文件组织规范:组件应该被放置在 src 目录中,每个组件应该有自己的文件夹,并使用 index.js 文件作为入口。
12+
- 类型规范:所有的变量和函数都应该有明确的类型声明,特别是对于需要传递给子组件的 props 和组件状态 state 的类型。
13+
- 测试规范:编写测试代码是开发组件的必要步骤。使用 Jest 和 @testing-library/react 进行组件测试,确保组件的质量和可靠性。
14+
- CSS 命名规范:在采用 [BEM](https://dtstack.yuque.com/rd-center/sm6war/clgpb7) 规范的基础上,使用 dt-react-component 标识性前缀 `dtc-`
15+
- 组件化开发思维:React 的核心概念就是组件化开发思想,因此在开发过程中要遵循这个原则。将代码拆分成小的可重用组件,并尽可能减少代码的重复性。
16+
- 文档规范:遵循简洁、易用的原则,开发对应的文档示例,确保每个示例不会耦合太多的 API。
1217

1318
**如有其他问题后续可以补充**
1419

1520
### 目录结构
1621

1722
```plain
1823
dt-react-component
19-
├── CHANGELOG.md
20-
├── README.md
21-
├── commitlint.config.js
22-
├── jest.config.js
23-
├── lib // 编译输出文件
24-
├── package-lock.json
25-
├── package.json
26-
├── scripts // 脚本文件
27-
│ └── release.sh
28-
├── setupTests.js
29-
├── .storybook // storybook 配置文件夹
30-
├── src
31-
│ ├── components // 组件文件夹
32-
│ │ ├── circle
33-
│ │ ├── goBack
34-
│ │ ├── index.tsx
35-
│ │ ├── slidePane
36-
│ │ └── utils // 组件内部引用的工具类文件
37-
│ ├── stories // 组件文档文件夹
38-
│ │ ├── circle.stories.tsx
39-
│ │ ├── components
40-
│ │ ├── func
41-
│ │ ├── goBack.stories.tsx
42-
│ │ ├── index.stories.tsx
43-
│ │ ├── slidePane.stories.tsx
44-
│ │ ├── style // 文档样式
45-
│ └── styles // 组件总样式
46-
│ └── index.scss
47-
├── storybook-static // 输出静态资源
48-
├── storyshots.test.js
49-
├── tsconfig.build.json // tsc 编译配置
50-
└── tsconfig.json
24+
├─.dumirc.ts --> dumi 的配置文件
25+
├─.editorconfig --> 编辑器配置文件,可以约定项目中使用的代码风格、缩进等等规则
26+
├─.eslintrc.js
27+
├─.fatherrc.ts --> father-build 的配置文件
28+
├─.prettierignore
29+
├─.prettierrc.js
30+
├─.stylelintignore
31+
├─.stylelintrc
32+
├─CHANGELOG.md
33+
├─LICENSE
34+
├─README-zh_CN.md
35+
├─README.md
36+
├─jest.config.js --> jest配置文件
37+
├─package.json
38+
├─pnpm-lock.yaml
39+
├─tsconfig.json --> TypeScript 的配置文件
40+
├─tests --> jest配置相关的文件
41+
| ├─fileTransformer.js
42+
| ├─setupTests.js
43+
| └styleMock.js
44+
├─src --> 组件源码
45+
| ├─index.ts --> 组件主入口
46+
| ├─utils
47+
| | ├─antdProps.ts --> antd的一些props
48+
| | ├─copy.tsx --> Copy工具类
49+
| | ├─index.ts --> 公共方法主入口
50+
| | ├─interface.ts --> 公共的类型定义
51+
| | └__tests__
52+
| ├─useList --> 单个组件目录
53+
| | ├─index.md --> 组件说明文档
54+
| | ├─index.ts --> 单个组件的源码
55+
| | ├─demos --> 不同场景的示例
56+
| | └__tests__ --> 单元测试
57+
├─docs --> 文档目录
58+
| ├─index.md
59+
| ├─guide
60+
| | ├─CONTRIBUTING.md --> 贡献指南
61+
| | ├─componentDev.md --> 组件开发
62+
| | ├─index.md --> 快速上手
63+
| | └updateLog.md --> 更新日志
64+
└.dumi --> dumi的配置文件
5165
5266
```
5367

5468
### 开发流程
5569

56-
在基于规范基础上开始组件开发,src 文件夹是我们开发中最关心的文件
57-
主要步骤大致如下:
70+
在你 clone 了 dt-react-component 的代码并且使用 pnpm install 安装完依赖后,你还可以运行下面几个常用的命令:
5871

59-
- src/components 业务组件逻辑、组件样式、测试文件编写等
60-
- src/components/组件名/style.scss **便于 css 按需支持,组件内部样式统一名称为 style.scss**
61-
- src/stories 组件文档介绍以及动态演示效果编写
62-
- src/styles 将组件样式文件统一引入,便于统一编译样式文件
63-
64-
**注意点:** 组件内部如需要引用图片资源,目前采用 **base64** 编码后引用
65-
66-
### 组件编译
67-
68-
```plain
69-
npm run compile
70-
输出 lib 文件夹
71-
```
72+
- `pnpm dev` 使用 Dumi 工具启动项目的开发模式
73+
- `pnpm build` 使用 Father 打包项目
74+
- `pnpm docs:build` 使用 Dumi 构建生成文档网站
75+
- `pnpm lint` 检查代码风格
76+
- `pnpm prepublishOnly` 在发布前运行 father doctor 检查项目配置,并运行 npm run build 进行打包
77+
- `pnpm deploy` 先执行 npm run docs:build 构建文档网站,再使用 gh-pages 将构建后的文档部署到 GitHub Pages 上
7278

7379
### 组件可用性、稳定性测试
7480

75-
在 publish npm 或者私有仓库之前,进行几个增加组件正确性的测试
81+
在 publish 仓库之前,进行几个增加组件正确性的测试
7682

77-
- npm link,本地项目测试效果
78-
- npm run test
83+
- `pnpm link`
84+
- `pnpm test`
7985

8086
### Tag 以及 CHANGELOG
8187

82-
```plain
83-
npm run release
84-
```
85-
86-
参考[版本管理](https://dtstack.yuque.com/rd-center/sm6war/cmdl2z)
87-
88-
### 组件发布
89-
90-
具体可参考[语雀链接](https://dtstack.yuque.com/rd-center/sm6war/ntmwtb)
88+
- `pnpm release`

0 commit comments

Comments
 (0)