# styleguidist_demo
**Repository Path**: amazing_steven/styleguidist_demo
## Basic Information
- **Project Name**: styleguidist_demo
- **Description**: 结合 styleguidist + vue + elementui 搭建的建议demo。
可以识别国际化,scss ,elementui 并提供可供查看的demo
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-01-03
- **Last Updated**: 2024-01-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 思路文档
[Vue Styleguidist docs](https://vue-styleguidist.github.io/Examples.html)
[如何让你的vue组件更好的被使用(Vue-Styleguidist中文文档) - 菜鸟学院](http://www.noobyard.com/article/p-dlckniis-ck.html)
[](https://segmentfault.com/a/1190000022721297?utm_source=tag-newest)
[Vue Styleguidist 生成组件说明文档 - 掘金](https://juejin.cn/post/7194369030696730682)
tips:
nrm 可以切换npm 源
nvm 可以切换node 版本,每次切换版本后都需要重新下载全局文件, 例如 npm i -g yarn
# 前置条件
1. node 版本 ≥ 16.14
2. yarn
3. 全局安装vue-cli, npm i -g @vue/cli
# 使用说明
## 安装
```jsx
vue add styleguidist
```
安装成功主要会有以下3个变化:
1. 根目录下出现 `@styleguide.config.js` 文件
2. src/components 会出现 AppButton.vue 文件
3. package.json 脚本中会出现,`styleguide` 和 `styleguide:build`命令
## 配置文件说明
styleguide.config.js
## 解释
### 解析demo
```jsx
// ❤ 对文档进行详细的说明,支持markdown
❤ 组件说明
This button is amazing, use it responsibly.
## 举例说明
Orange button:
```jsx
Push Me
```
Ugly button with pink font and blue background:
```jsx
Ugly button
```
Button containing custom tags:
```jsx
Text with bold
```
```
### 其他使用方法
不使用 `
/* ... */
vvvv
```
1. 使用了`@displayName`标签将该变组件名称,这是一个顶层的注释,必须出现在脚本标签`export default`之前。
2. 使用 `@values` 可以设定不同的value值
3. 对methods 中使用 `@property {number} newvalue 这里对value进行说明`
4. 对属性使用 `@binding {object} icon 这里是对icon的说明`
5. 默认的组件中**`methods`**中的方法被视为私有的,是不会被公开的。可使用JSDoc中**`@public`**标签让方法视为公开,并展现在文档中
6. 默认状况下,组件中的全部属性**`props`**被认为是公开发的。在极少数状况下,想要只在文档中的移除部分属性说明。为此,可使用JSDoc的**`@ignore`**标签注释在属性前面,用于标记在文档中移除它。
7. 使用**`@example`**注释,添加外部示例文件。
# 结合项目使用
项目里使用需要满足以下几个条件:
- [x] 可以结合elementui
- [x] 可以满足组件嵌套
- [x] 可以使用全局scss变量
- [x] 可以使用全局的国际化
- [x] 尽可能的提供可运行的demo
- [x] 结构清晰
- [x] 可以做到忽略某些不需要说明的组件
## 结合elementui
### 引入全局组件依赖
因为styleguide是不会加载main.js的,所以需要把组件用到的依赖重新引入
根目录下新建一个styleguide文件,添加global.require.js文件,此文件会在styleguide.config.js里被引用;
```jsx
import Vue from 'vue';
import Element from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(Element, {
size: 'medium' // set element-ui default size
})
```
### 添加将新增文件放入
在styleguide.config.js 中加入
```jsx
const path = require('path')
module.exports = {
require: [path.join(__dirname, 'styleguide/global.require.js')], //全局vue组件使用的插件
}
```
此时正常显示。
## 可以全局的国际化变量
新增 **`styleguide.root.js` 并在 styleguide.config.js 中配置**
```jsx
require: [ path.join(__dirname, 'src/config/global.requires.js') ], //全局vue组件使用的插件
renderRootJsx: path.join(__dirname, 'src/config/styleguide.root.js'),
```
**`styleguide.root.js` 内容如下:**
```jsx
import ElementUI from 'element-ui';
import i18n from '@/lang'
export default function(previewComponent) {
return {
i18n,
ElementUI,
render(h) {
return h(
'div',
{
props: {
id: 'v-app'
}
},
['', h(Object.assign(previewComponent))]
)
}
}
}
```