vant/docs/markdown/contribution.zh-CN.md
2019-05-07 17:51:38 +08:00

145 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 开发指南
首先感谢你使用 Vant。
以下是关于向 Vant 提交代码的指南。在向 Vant 提交 Issue 或者 PR 之前,请先花几分钟时间阅读以下文字。
### Issue 规范
- 遇到问题时,请先确认这个问题已经在 issue 中有记录或者已被修复
- 提 Issue 时,请用简短的语言描述遇到的问题,并添加出现问题时的环境和复现步骤
### Pull Request 规范
- 如果遇到问题,建议保持你的 PR 足够小。保证一个 PR 只解决一个问题或只添加一个功能
- 当新增组件或者修改原有组件时,记得增加或者修改测试代码,保证代码的稳定
- 在 PR 中请添加合适的描述,并关联相关的 Issue
### Pull Request 流程
1. fork 主仓库,如果已经 fork 过,请同步主仓库的最新代码
2. 基于 fork 后仓库的 dev 分支新建一个分支,比如`feature/button_color`
3. 在新分支上进行开发,开发完成后,提 Pull Request 到主仓库的 dev 分支
4. Pull Request 会在 Review 通过后被合并到主仓库
5. 等待 Vant 发布版本,一般是每周一次
### 同步教程
提 Pull Request 前,请依照下面的流程同步主仓库的最新代码
```bash
# 添加主仓库到 remote作为 fork 后仓库的上游仓库
git remote add upstream https://github.com/youzan/vant.git
# 拉取主仓库最新代码
git fetch upstream
# 切换至 dev 分支
git checkout dev
# 合并主仓库代码
git merge upstream/dev
```
### 初始化项目
```bash
git clone git@github.com:youzan/vant.git
cd vant
# 安装依赖
npm run bootstrap
# 本地开发模式
npm run dev
```
浏览器访问 [http://localhost:8080](http://localhost:8080) 就可以看到所有组件的示例了。
### 目录结构
- 仓库的组件代码位于 packages 下,每个组件一个文件夹
- docs 目录下是文档网站的代码,本地开发时可以在目录下运行 npm run dev 开启文档网站
项目目录大致如下:
```
vant
├─ build # 构建脚本
├─ docs # 文档网站
├─ packages # 组件文件
├─ test # 单元测试
└─ types # 类型定义
```
### 添加新组件
添加新组件时,请按照下面的目录结构组织文件,并在 `docs/src/doc.config.js` 中配置组件名称
```
packages
|- button
| ├─ demo # 示例代码
| ├─ test # 单元测试
| ├─ zh-CN.md # 中文文档
| ├─ en-US.md # 英文文档
| ├─ index.less # 组件样式
| └─ index.vue # 组件入口
|
├─ index.js # 所有组件入口
└─ index.less # 所有组件样式
```
### 组件文档
组件文档采用 markdown 格式,内容包括使用示例以及 `API` 等。
##### 1. 标题规范
文档标题从 `h2`(即 `##` 标题 )开始,每往下一级多加一个 `#` 号。
##### 2. 组件描述
大标题下面是对组件的一句话简要描述。
##### 3. 使用指南
如果组件需要使用指南,放在组件描述下方,另起一个二级标题。
##### 4. 代码演示
书写代码演示时,建议从简单用法开始介绍,不要上来就同时使用一大堆 API会让人觉得难以上手。并且一个示例只演示一个 API 的使用方法,如无特殊需求不要在一个示例中同时演示多个 API 混合使用。
```html
<van-button :size="size">
Large
</van-button>
```
```javascript
export default {
data() {
return {
size: 'large'
};
}
};
```
#### 5. API 说明
组件的 API 说明以表格的形式书写,表格包含以下列:
| 参数 | 说明 | 类型 | 默认值 |
| ------------ | ------------- | -------- | ---------- |
| visible | 是否可见 | `Boolean` | `false` |
#### 6. Event 说明
组件的 Event 说明,请以表格的形式书写,表格包含以下列:
| 事件名 | 说明 | 参数 |
|-----------|-----------|-----------|
| click | 点击按钮时触发 | event事件对象 |