diff --git "a/vue\346\226\207\346\241\243\350\247\204\350\214\203.md" "b/vue\346\226\207\346\241\243\350\247\204\350\214\203.md" new file mode 100644 index 0000000..f6124d0 --- /dev/null +++ "b/vue\346\226\207\346\241\243\350\247\204\350\214\203.md" @@ -0,0 +1,66 @@ +## vue文档规范 + +>组件名应该始终是多个单词的,根组件 App 以及 之类的 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 使用 $_ 前缀。 +``` + + +``` +>对于应用来说,顶级 App 组件和布局组件中的样式可以是全局的,但是其它所有组件都应该是有作用域的。对于组件库,我们应该更倾向于选用基于 class 的策略而不是 scoped attribute。 + + +>使用模块作用域保持不允许外部访问的函数的私有性。如果无法做到这一点,就始终为插件、混入等不考虑作为对外公共 API 的自定义私有 property 使用 $_ 前缀。并附带一个命名空间以回避和其它作者的冲突 \ No newline at end of file