# 订单来了业务库

## 1.0.1 版本更新日志

## 如何发布
npm或者dnpm（如果你配置了dnpm的话），要求registry需要是订单来了样公司内部源。

一般情况下，不需要手动修改版本号。复制执行。

``` bash
npm publish --registry=https://registry.npmmirror.com/

# 会提示更新版本号，并自动构建、推送远端
```

## 版本号相关
业务组件库由于跟基础组件库方向不一致，现在开始正式区分公共`dev`分支、公共`test`分支、`master`分支、以及自己的开发分支
分别对应版本
`master`: 0.9.1   没有任何后缀，用于上预发、正式
`test：` 0.9.1-beta.1 带有beta后缀，对应mic-pms的测试服
`dev：` 0.9.1-dev.1 带有dev后缀，对应mic-pms的开发服
`alpha：` 0.9.1-alpha.1 带有alpha后缀，对应自己的开发分支如`feat-f25`，用于本地测试

构建选择版本的命令已经更新，现在在对应分支才可以发布对应版本，需要发布到业务的测试服、开发服，就必须要使用对应的beta、dev版本，望周知

*已知bug：控制台输出的版本不一定正确，可能会差一个小版本号，原因未知，以`彭于晏`通知的版本号或者手动查看`package.json`为准*

## 如何开发
如果你不需要和其他仓库联动，可以只用本地启动`yarn serve`查看本地文档。

第一次启动白屏的话，可以刷新重试。

如果你需要和其他仓库联动验证功能，则首先需要全局安装yalc，在需要使用的位置，如mic-pms根目录
```bash
yalc add qdll-business
```
然后回到业务组件库，启动以下命令，你的每一次修改都会自动更新到mic-pms中，会触发热更新
``` bash
yarn dev:v2
# OR 如果开发的是vue3
yarn dev:v3
```

## 开发规范

### 组件开发     

组件开发一律使用composition-api开发，相关的API必须从vue-demi中引入，不可以直接从vue或者@vue/composition-api中引入

不支持setup语法糖，必须使用defineComponent
``` ts
export default defineComponent({

})
```


template需要避开使用vue3的特定语法，比如v-model修饰符，需要展开语法，有兴趣的话，可以做一下插件开发
``` html
<!-- error -->
<MyComponent
    v-mode.custom="custom"
/>
<!-- 展开 -->
<MyComponent
    :custom="custom"
    @update:custom="value => custom = value"
/>
```
同样，也避开模板多个根元素
``` html
<template>
    <!-- error -->
    <div></div>
    <span></span>
</template>
<!-- 只能有一个根元素 -->
<template>
    <div>
        <div></div>
        <span></span>
    </div>
</template>
```

如果需要使用element，不要从element中引入，需要使用`setElementComponentRecord`方法，从外部传入组件，然后动态组册或者调用


### 文档开发
文档书写时，只有一级标题，`# 组件名称`以及`### 组件说明`，`## 二级文档`会出现在侧面导航，视具体情况使用


会自动查找文件中的index.md，如果需要插入示例，则在md文件自行增加一个`### Demo`的段落，并且在同级目录增加一个`Demo.vue`的文件用于写你的示例代码，会自动插入的

好消息，你在Demo里面可以使用setup语法糖，可以直接从vue中引入方法！！