前端规范总结

引自《阿里规约》的开头片段:

----现代软件架构的复杂性需要协同开发完成,如何高效地协同呢?无规矩不成方圆,无规范难以协同,比如,制定交通法规表面上是要限制行车权,灰机上是保障公众的人身安全,试想如果没有限速,没有红绿灯,谁还敢上路行驶。对软件来说,适当的规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种普遍认可的同一方式一起做事,提升协作效率,降低沟通成本。代码的字里行间流淌的是软件系统的血液,质量的提升是尽可能少采坑,杜绝踩重复的坑,切实提升系统的稳定性,码出质量。

命名:

项目命名、目录命名、HTML、js、css、png等文件命名、都使用小写方式,以中划线分割;

命名严谨性:尽量使用英文拼写,让阅读者易于理解

HTML

缩进:2个空格

分块注释:在每一个块状元素、列表元素和表格元素后,加上一对HTML注释

语义化标签:避免整个页面都是div和p标签;

双引号:使用双引号

CSS

类名使用上述小写加中划线命名规范;id采用驼峰式命名;scss中的变量、函数、混合、placeholder采用驼峰式命名

css选择器避免使用标签名

使用直接子选择器

尽量使用缩写属性

每个选择器及属性独占一行

省略0后面的单位

避免使用id选择器及全局标签选择器防止全局污染

less

公共less文件放在style/less/common文件夹

按以下顺序组织

1、@import

2、变量声明

3、样式声明

避免嵌套过多

JavaScript

命名小写驼峰,不能以下划线开始或结束

方法名、参数名、成员变量、局部变量统一使用lowerCamelCase风格,必须遵从驼峰格式

增删改查、详情统一使用:add,update,delete,detail,get

常量命名全部大写,单词间用下划线隔开

不同逻辑、语义、业务的代码之间插入空行分隔开以提升可读性

字符串统一使用单引号(在创建HTML字符串非常有好处)

对象声明:使用字面值创建对象,使用字面量代替对象构造器

使用ES6+

if,else,for,while,do,switch,try,catch,finally,with后面必须有大括号

undefined使用typeof和字符串'undefined'判断

条件判断和循环最多三层,可用三元运算符代替,但不要过长,超过三层抽成函数

this的转换命名使用self

大量使用console.log会有性能问题

VUE

命名:组件名始终是多个单词,采用pascal-case(所有首字母大写),组件文件命名使用kebab-case,基础组件以base开头,和父组件紧密耦合的子组件应以父组件名作为前缀

在template中使用组件,应适应pascal-case(所有首字母大写),并使用自闭合组件

prop定义应该尽量详细:camel-case,指定类型,加上注释,required或default,若有业务需要必须加validator

组件样式设置scoped作用域

如果特性元素过多,主动换行

模板中使用简单表达式,复杂表达式重构为计算属性或方法

v-if、v-show:频繁切换使用v-show,条件改变少使用v-if

vue2结构顺序:name>components>mixins>props>data>computed>watch>filter>钩子函数(按执行顺序)>methods

路由
使用懒加载

命名使用kebab-case尽量vue文件的目录结构保持一致

path以/开头

vue项目的命名与后端命名保持一致

目录:

src:源码目录

api:所有api接口

assets:静态资源,images,icons,styles等

components:公用组件

config:配置信息

constants:常量信息,项目所有Enum,全局常量等

directives:自定义指令

filters:过滤器,全局工具

datas:模拟数据,临时存放

lib:外部引用的插件存放及修改文件

mock:模拟接口,临时存放

plugins:插件,全局使用

router:路由,统一管理

store:vuex,统一管理

themes:自定义样式主题

views:视图目录

role:模块名

role-list.vue:role列表页面

role-add.vue:role新建页面

role-update.vue:role更新页面

index.less:role模块样式

components:role模块通用组件文件夹

employee:模块名

api目录:文件、变量命名要与后端保持一致,按照后端一个controller一个api.js文件,api中的方法名字要与后端api url尽量保持语义高度一致性,每个api方法要添加注释,与后端文档保持一致

assets目录:静态资源命名使用kebab-case

components目录:命名使用kebab-case

router与store目录:将业务进行拆分,不能放到一个js文件里,router尽量按照views中的结构保持一致,store按照业务进行拆分不同的js文件

components目录:命名要与后端、router、api保持一致

注释:

公共组件使用说明

api目录的接口js

store中的state、mutation、action等

vue文件中的template,若文件较大添加start end注释

每个methods

data中的非常见单词

其他
避免直接操作DOM

使用了git/svn的话删除console、弃用代码等无用代码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值