前端(vue系列):vue规范

vue作为前端应用的三大框架之一,其易上手,门槛低。给人简单,高效的感觉。但要写好vue代码,需有一定的规范防止自己逻辑出错,以及提高阅读效率。

1.目录规范及结构

  • src文件夹目录结构
src                        
|--api                   公用接口,统一管理存放文件夹
|--assets                图片存放,建议在存放图片时,按照一个模块一个文件夹进行存放,如是公用图片,则将其放入公用文件夹。
|--components            公用组件存放库,建议每个组件单独一个文件夹
   --index.js            公用组件统一管理文件
|--filters               全局过滤器
|--routers               公用路由配置存放文件夹,建议每个模块单独一个文件夹
  --index.js             路由配置统一文件
|--store                 vuex配置管理
|--styles                全局样式统一管理存放文件夹
|--utils                 公用方法存放文件夹
|--view                  模块组件文件存放文件夹,建议每个模块单独一个文件夹
  |--main                存放首页文件
    |--components        局部组件
        --index.js
    |--pages             模块组件
--App.vue                根组件
--main.js                生成vue实例及全局方法路由引进配置文件
--router.js              可配置路由文件

注:上述目录是博主日常工作采用的文件目录模式,不能说明其好坏,只能说适合自己就好。

  • 组件命名规范
    (1)不能使用关键字作为命名
    (2)声明用大驼峰命名,即首字母大写

      import studentClass from '文件位置' //不推荐
      import StudentClass from  '文件位置' //推荐
    

    (3)导入及注册组件时采用大驼峰命名
    (4)简短、易理解、可读性好

2.组件内容顺序

vue单文件组件(js写逻辑的)分为三大块,如下:

<template>
  这里写模板(HTML语言)
</template>
<script>
  export default{
    components:{},
    name:'自定义',
    data(){
      return {}//必加,否则报错
    },
    mounted(){},
    methods:{},
  }
</script>
<style lang="scss" scoped>
  这里写局部样式,当然去掉scoped就是全局样式了
</style>

- template部分的规范

首先单文件组件的根标签template下,只能有一对标签

<template>
    <div></div>   <!--正常-->
</template>
<template>
    <div></div>   
    <div></div>   <!--报错-->
</template>

 其次建议少用id选择器,尽量用类名进行替换。类名命名要符合语义化,标签尽量用语义化标签。具体请看前端:规范2前端:规范3

<div id="nav-bar"></div>
//可以替换成
<div class="nav nav-base nav-bar"></div>

这样拆分样式,可以降低代码量,提出公用样式,以及减少维护及二次开发人员的维护或开发难度。

- script 部分的规范

 1.放置区域划分

<script>
  import 插件 from '导入文件的位置'
  import 混合 from '导入文件的位置'
  import 组件from '导入文件的位置'
  import 其他 from '导入文件的位置' //导入文件位置
  const NAV_lIST = [];//常量位置
  export default{//vue实例选项位置
    components:{},
    name:'自定义',
    data(){
      return {}//必加,否则报错
    },
    mounted(){},
    methods:{},
  }
</script>

 2..vue选项顺序(常用)

|- components
|- model
|- props
|- mixins
|- provide
|- inject
|- name
|- data
|- computed
|- created
|- mounted
|- methods
|- filter
|- watch
|- destroy

 2.常量命名
  常量命名采用大写,多个单词间用 _下划线分隔。

const pi= Math.PI //不推荐
const PI=Math.PI //推荐 
const myName = 'lin'
const my_name = 'lin'

 3.变量命名
  变量命名采用小驼峰命名方式,也可以将小写单词用_下滑先相连,单个单词时用小写。

let count = 10 
let all_count = 100
let allCount = 100
let allcount = 100 //不推荐

 4.方法命名
  方法命名采用动-宾结构,例如:我需要重后台获取菜单数据,可以命名成‘getMenuData’。书写格式采用小驼峰。注意命名时尽量用少量的单词描述清楚该方法是要做什么的。

methods:{
  /**
  *这里是注释
   */
    getMenuList(){
  
  }
}

 5.方法注释
  写方法注释的目的就是为了让自己或者同事,后续改动时能够快速上手代码,基本上需要的几项如下,当然也可以如上只保留描述:

    /**
     * 方法描述
     * @param {*} params 传入参数描述
     * @author 作者
     * @returns 返回值
     */
    getList(params){
        return params;
    }

3.单页组件代码量规范

 一般的单组件文件的代码行数超过300行时,即可以进行拆分文件。当代码行数超过600行时必须对其进行拆分。精简代码。拆分的方法,一般有(目前博主知道的):

  - 利用vue混合(mixins)将某一特定功能的变量,方法集中到一起。

  - 将某一特定功能的实现封装成特定的组件

  - 将特定功能抽象封装成类(这个估计大神可以)

  - 抽取公用方法、样式

4.常用命名动词收集

注:如下的这段命名常用动词,来自史上最全的Vue开发规范。如有侵权请联系博主删除

get 获取/set 设置,
add 增加/remove 删除
create 创建/destory 移除
start 启动/stop 停止
open 打开/close 关闭,
read 读取/write 写入
load 载入/save 保存,
create 创建/destroy 销毁
begin 开始/end 结束,
backup 备份/restore 恢复
import 导入/export 导出,
split 分割/merge 合并
inject 注入/extract 提取,
attach 附着/detach 脱离
bind 绑定/separate 分离,
view 查看/browse 浏览
edit 编辑/modify 修改,
select 选取/mark 标记
copy 复制/paste 粘贴,
undo 撤销/redo 重做
insert 插入/delete 移除,
add 加入/append 添加
clean 清理/clear 清除,
index 索引/sort 排序
find 查找/search 搜索,
increase 增加/decrease 减少
play 播放/pause 暂停,
launch 启动/run 运行
compile 编译/execute 执行,
debug 调试/trace 跟踪
observe 观察/listen 监听,
build 构建/publish 发布
input 输入/output 输出,
encode 编码/decode 解码
encrypt 加密/decrypt 解密,
compress 压缩/decompress 解压缩
pack 打包/unpack 解包,
parse 解析/emit 生成
connect 连接/disconnect 断开,
send 发送/receive 接收
download 下载/upload 上传,
refresh 刷新/synchronize 同步
update 更新/revert 复原,
lock 锁定/unlock 解锁
check out 签出/check in 签入,
submit 提交/commit 交付
push 推/pull 拉,
expand 展开/collapse 折叠
begin 起始/end 结束,
start 开始/finish 完成
enter 进入/exit 退出,
abort 放弃/quit 离开
obsolete 废弃/depreciate 废旧,
collect 收集/aggregate 聚集

注:本文章参考
史上最全的Vue开发规范 ps:该规范强烈推荐,内容条理清晰,很详细
Vue项目代码规范

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,313评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,369评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,916评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,333评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,425评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,481评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,491评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,268评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,719评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,004评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,179评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,832评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,510评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,153评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,402评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,045评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,071评论 2 352