代码校验可以保持代码的统一性以及追踪语法错误。.vue 文件可以通过使用 `eslint-plugin-html`插件来校验代码。你可以通过 `vue-cli` 来开始你的项目,`vue-cli` 默认会开启代码校验功能。
### [](https://github.com/pablohpsilva/vuejs-component-style-guide/blob/master/README-CN.md#为什么-12)为什么?
* 保证所有的开发者使用同样的编码规范。
* 更早的感知到语法错误。
### [](https://github.com/pablohpsilva/vuejs-component-style-guide/blob/master/README-CN.md#怎么做-11)怎么做?
为了校验工具能够校验 `*.vue`文件,你需要将代码编写在 `<script>`标签中,并使[组件表达式简单化](https://github.com/pablohpsilva/vuejs-component-style-guide/blob/master/README-CN.md#%E4%BF%9D%E6%8C%81%E7%BB%84%E4%BB%B6%E8%A1%A8%E8%BE%BE%E5%BC%8F%E7%AE%80%E5%8D%95%E5%8C%96),因为校验工具无法理解行内表达式,配置校验工具可以访问全局变量 `vue` 和组件的 `props`。
#### [](https://github.com/pablohpsilva/vuejs-component-style-guide/blob/master/README-CN.md#eslint)ESLint
[ESLint](http://eslint.org/) 需要通过 [ESLint HTML 插件](https://github.com/BenoitZugmeyer/eslint-plugin-html#eslint-plugin-html)来抽取组件中的代码。
通过 `.eslintrc` 文件来配置 ESlint,这样 IDE 可以更好的理解校验配置项:
```source-json
{
"extends": "eslint:recommended",
"plugins": ["html"],
"env": {
"browser": true
},
"globals": {
"opts": true,
"vue": true
}
}
```
运行 ESLint
```source-shell
eslint src/**/*.vue
```
#### [](https://github.com/pablohpsilva/vuejs-component-style-guide/blob/master/README-CN.md#jshint)JSHint
[JSHint](http://jshint.com/) 可以解析 HTML(使用 `--extra-ext`命令参数)和抽取代码(使用 `--extract=auto`命令参数)。
通过 `.jshintrc` 文件来配置 ESlint,这样 IDE 可以更好的理解校验配置项。
```source-json
{
"browser": true,
"predef": ["opts", "vue"]
}
```
运行 JSHint
```source-shell
jshint --config modules/.jshintrc --extra-ext=html --extract=auto modules/
```
注:JSHint 不接受 `vue` 扩展名的文件,只支持 `html`。
- Vue开发规范
- 基于模块开发
- 组件
- 组件命名规则
- 基础组件名
- 单例组件名
- 紧密耦合的组件名
- 组件名中的单词顺序
- 组件文件夹命名规则
- method方法
- methods方法命名规则
- 组件结构化
- 组件事件命名规则
- v-for与v-if
- 为 v-for 设置键值
- 避免 v-if 和 v-for 用在一起
- Prop
- Prop命名规则
- Prop定义
- 避免 this.$parent
- 谨慎使用 this.$refs
- 隐性的父子组件通信
- 元素
- 元素特性的顺序
- 多个特性的元素摆放规则
- 单文件组件的顶级元素的顺序
- 简化代码
- 模板中简单的表达式
- 简单的计算属性
- 指令缩写
- 文件引用路径
- 其他注意
- 组件数据
- 将 this 赋值给 component 变量
- 对组件文件进行代码校验
- 尽可能使用 mixins
- 非 Flux 的全局状态管理
- 只在需要时创建组件
- HTML开发规范
- HTML语法
- HTML5 doctype
- 语言属性
- IE 兼容模式
- 字符编码
- 引入 CSS 和 JavaScript 文件
- 实用为王
- 属性顺序
- 布尔(boolean)型属性
- 减少标签的数量
- JavaScript 生成的标签
- CSS开发规范
- CSS语法
- 声明顺序
- 不要使用 @import
- 媒体查询(Media query)的位置
- 带前缀的属性
- 单行规则声明
- 简写形式的属性声明
- Less 和 Sass 中的嵌套
- Less 和 Sass 中的操作符
- 注释
- class 命名
- 选择器
- 代码组织