Skip to content

Commit

Permalink
Create vue文档规范.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Augustus0619 committed Mar 27, 2021
1 parent 951aee5 commit b32e30d
Showing 1 changed file with 66 additions and 0 deletions.
66 changes: 66 additions & 0 deletions vue文档规范.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
## vue文档规范

>组件名应该始终是多个单词的,根组件 App 以及 <transition>、<component> 之类的 Vue 内置组件除外。这样做可以避免跟现有的以及未来的 HTML 元素相冲突,因为所有的 HTML 元素名称都是单个单词的。
```
Vue.component('todo-item', {
// ...
})
export default {
name: 'TodoItem',
// ...
}
```
>组件的 data 必须是一个函数。当在组件中使用 data property 的时候 (除了 new Vue 外的任何地方),它的值必须是返回一个对象的函数。
>Prop 定义应该尽量详细。
在你提交的代码中,prop 的定义应该尽量详细,至少需要指定其类型。
```
props: {
status: String
}
// 更好的做法!
props: {
status: {
type: String,
required: true,
validator: function (value) {
return [
'syncing',
'synced',
'version-conflict',
'error'
].indexOf(value) !== -1
}
}
}
```

>用 key 配合 v-for。在组件上总是必须用 key 配合 v-for,以便维护内部组件及其子树的状态。
>避免v-ifhe v-for一起使用

>使用模块作用域保持不允许外部访问的函数的私有性。如果无法做到这一点,就始终为插件、混入等不考虑作为对外公共 API 的自定义私有 property 使用 $_ 前缀。
```
<ul>
<li
v-for="user in activeUsers"
:key="user.id"
>
{{ user.name }}
</li>
</ul>
<ul v-if="shouldShowUsers">
<li
v-for="user in users"
:key="user.id"
>
{{ user.name }}
</li>
</ul>
```
>对于应用来说,顶级 App 组件和布局组件中的样式可以是全局的,但是其它所有组件都应该是有作用域的。对于组件库,我们应该更倾向于选用基于 class 的策略而不是 scoped attribute。

>使用模块作用域保持不允许外部访问的函数的私有性。如果无法做到这一点,就始终为插件、混入等不考虑作为对外公共 API 的自定义私有 property 使用 $_ 前缀。并附带一个命名空间以回避和其它作者的冲突

0 comments on commit b32e30d

Please sign in to comment.