补充
事项 | 说明 | 备注 |
---|---|---|
代码 | 统一IDE使用EditorConfig插件控制缩进,保证代码的可读性 | ? |
SVN提交需写明备注,列明当前代码修改项 | ||
添加注释 | ... | |
命名: 1,js : setingCheck.js 2,全局变量 : SONG_LIST 3,id/class:mainLeft,top-map? (短横杠待定) | ? | |
ES5/ES6使用规范 | 如const/let、箭头函数 | |
注释 |
1,复杂逻辑处理给出注释说明过程(无论是系统还是自定义) 2,组件中的重要函数或类 添加说明 3,多重 if 判断语句 4,注释块统一以 /** 注释 **/ 5,单行注释使用 // | |
调试 | 谷歌调试工具 , vue-devTool | console调试完及时删除 |
分号 | 行尾分号可以加或不加,应统一风格,但建议都不加 |
v-for 遍历避免同时使用 v-if
// template
<ul>
<li v-for="user in activeUsers" :key="user.id">
{{ user.name }}
</li>
</ul>
// js
export default {
computed:{
activeUsers:function(){
return this.users.filter(function (user){
return user.isActive
})
}
}
}
列表优化
如果列表是纯粹的数据展示,不会有任何改变,就不需要做响应化☟
// js
export default {
data:()=>({
users:[]
})
created(){
const users=axios.get("/api/users")
this.users=Obiet.freeze(users)
}
}
变量本地化
export default {
props: ['start'],
computed: {
base() { return: 42 },
result() {
const base = this.base //不频繁引入this.base,用变量接收
let result = this.start
for (let i = 0; i < 1000; i++) { result += heavy(base) }
return result
}
}
}
v-if + v-else
v-if 为同一类型组件(或同一模板的dom树)来做显示和隐藏时,最好在最外层添加key属性来设定唯一标识,否则容易出问题
<template v-if="type=== 'username'">
<label>用户名</label>
<input placeholder="输入用户名">
</template>
<template v-else>
<label>邮箱</label>
<input placeholder="输入邮箱">
</template>
代码切换时,仅仅切换placeholder,而不会重新渲染,因为他用了相同的模板
若v-if切换的是逻辑复杂的控件时,切换时不重新渲染极易出问题
需要给要重新渲染的控件添加一个key属性,来唯一标识该控件,被key标识后会重新渲染。实例如下
<template v-if="type=== 'username'" key="1">
<label>用户名</label>
<input placeholder="输入用户名">
</template>
<template v-else key="2">
<label>邮箱</label>
<input placeholder="输入邮箱">
</template>
※v-if和v-else或v-else-if之间不能添加其他元素。