01
不知道小伙伴们有没有感觉到,为什么我和别一做一样的开发,经验水平也都差不多,为什么别人的工资就是要比我的高,领导和同喜也都比较喜欢他呢?
确实,当两个人的水平经验都差不多的情况下,有些人写的代码就是要好点,让人看起来很舒服,而且维护起来修改功能人家也比较快。这是什么原因呢,其实就是两个字:规范
好的一个代码习惯,可以起到事半功倍的效果。相反,乱写一气,命名不规范,过段时间自己都不看懂到底是怎么回事,这样的人肯定是不会受老板领导甚至同事的喜欢,以后涨薪也不会优先考虑到你。
下面我们介绍一下关于在Vue开发过程中,一些比较好的规范,让大家都能写出漂亮的代码。
02
相信很多人都喜欢用自己的熟练的开发工具都做开发,这无可厚非,但是当我们来到一个新的公司,同事都用的别的开发工具,而你自己别的开发工具,就拿前端来说吧,有的人喜欢用 vscode,有的喜欢用 webstorm,甚至还有小伙伴喜欢用sublime等一些开发工具。如果是您个人开发的话这是可以的,但现实往往是一个团队一起开发,这样我们就不能根据自己的喜好去选择,而是应该跟着团队一起用一样的开发工具。 一定要记得工具就是为了提高开发效率而来的,切不可一成不变。只有适合的没有好与坏,跟着大家一起才能把事情做好。
03
关于页面或者组件
App
,以及 <transition>
、<component>
之类的 Vue 内置组件。
比如:Todo,我们应该命名成:TodoItem 或者 todo-item
不要起单个单词的名字,这样有可能会和html中的标签冲突<MyComponet/>
在DOM中应该使用
<my-component></my-component>
<my-component></my-component>
关于Props
props: ['status']
这样的写法
要尽可能描述清楚,如:
props: {
status: {
type: String,
required: true,
validator: value => {
return [
'syncing',
'synced',
'version-conflict',
'error'
].includes(value)
}
}
}
不好的写法
// 定义
props: {
'greeting-text': String
}
// 使用
<WelcomeMessage greetingText="hi"/>
好的写法
// 定义
props: {
greetingText: String
}
// 使用
<WelcomeMessage greeting-text="hi"/>
关于v-for的使用
同时要记得尽量避免 index下标作为key属性的值。尽可能的使用 id
v-if
和 v-for
。这也是一个常问的面试题,大家一定要知道原理是什么,就是因为 v-if 的优先级要比 v-for 的优先级高,如果在v-if的里面使用v-for的变量,会拿不到该变量,因为还没有执行到v-for。另外也是因为效率的问题,每次循环都要经过一次 if 判断,会影响页面的渲染。
如果真的要在一起用可以使用下面的方法:
<ul>
<template v-for="user in users" :key="user.id">
<li v-if="user.isActive">
{{ user.name }}
</li>
</template>
</ul>
其它方面的规范
name
compilerOptions
components
directives
extends
mixins
provide
/inject
inheritAttrs
props
emits
expose
setup
data
computed
beforeCreate
created
beforeMount
mounted
beforeUpdate
updated
activated
deactivated
beforeUnmount
unmounted
errorCaptured
renderTracked
renderTriggered
watch
methods
template
/render
04
每个公司或者团队在开发规范方面要求不尽相同,以上只是我个人在开发的时候用到的一些规范,不等于其它人或者团队也是这样的要求,我们要做的就是应该尽快适应团队的开发规范。 也可以通过一些工具如:eslint 或者 prettier 等来帮助我们自动格式化代码,这样在写的时候效率也会大大的提高。 最后祝大家都能写出漂亮的代码