与后端保持一致
· 命名方法 : 全部大写
· 命名规范 : 使用大写字母和下划线来组合命名,下划线用以分割单词。
const MAX_COUNT = 10 const URL = 'https://www.baidu.com/'
const that =this;
官方文档推荐及使用遵循规则:
PascalCase (单词首字母大写命名)是最通用的声明约定
kebab-case (短横线分隔命名) 是最通用的使用约定
· 驼峰式命名,统一使用动词或者动词+名词形式
· 请求数据方法,以 data 结尾
· init、refresh 单词除外
· 尽量使用常用单词开头(set、get、go、can、has、is)
附: 函数方法常用的动词:
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 聚集
在声明 prop 的时候,其命名应该始终使用 camelCase,而在模板中应该始终使用 kebab-case
src 源码目录 |-- api 接口,统一管理 |-- assets 静态资源,统一管理 |-- components 公用组件,全局文件 |-- config 系统配置文件 |-- libs 外部引用的插件存放及修改文件 |-- mock 模拟接口,临时存放 |-- router 路由,统一管理 |-- store vuex, 统一管理 |-- views 视图目录 | |-- xxx-xxx 视图模块名 | |-- |-- xxx-xxx-list.vue 列表页面 | |-- |-- xxx-xxx-add.vue 新增页面
<template> <div> <!--必须在div中编写页面--> </div> </template> <script> export default { components : { }, data () { return { } }, mounted() { }, methods: { } } </script> <!--声明语言,并且添加scoped--> <style lang="scss" scoped> </style>
多个特性的元素应该分多行撰写,每个特性一行。(增强更易读)
例:
<img src="https://vuejs.org/images/logo.png" alt="Vue Logo" >
原生属性放前面,指令放后面
- class - id,ref - name - data-* - src, for, type, href,value,max-length,max,min,pattern - title, alt,placeholder - aria-*, role - required,readonly,disabled - is - v-for - key - v-if - v-else-if - v-else - v-show - v-cloak - v-pre - v-once - v-model - v-bind,: - v-on,@ - v-html - v-text
如下所示:
- components - props - data - computed - created - mounted - metods - filter - watch
代码注释在一个项目的后期维护中显的尤为重要,所以我们要为每一个被复用的组件编写组件使用说明,为组件中每一个方法编写方法说明
务必添加注释列表
单行注释
注释单独一行,不要在代码后的同一行内加注释。例如:
// 姓名 let name = “abc”;
组件使用说明,和调用说明 /** * 组件名称 * @module 组件存放位置 * @desc 组件描述 * @author 组件作者 * @date 2017年12月05日17:22:43 * @param {Object} [title] - 参数说明 * @param {String} [columns] - 参数说明 * @example 调用示例 * <hbTable :title="title" :columns="columns" :tableData="tableData"></hbTable> **/
使用 ES6 风格编码
1. 定义变量使用 let ,定义常量使用 const
2. 静态字符串一律使用单引号或反引号,动态字符串使用反引号
例:
const a = 'foobar' const b = `foo${a}bar` const c = 'foobar'
· 数组成员对变量赋值时,优先使用解构赋值
// 数组解构赋值 const arr = [1, 2, 3, 4] const [first, second] = arr
· 函数的参数如果是对象的成员,优先使用解构赋值
// 对象解构赋值 function getFullName(obj) { const { firstName, lastName } = obj } function getFullName({ firstName, lastName }) {}
使用扩展运算符(...)拷贝数组。
const items = [1, 2, 3, 4, 5] const itemsCopy = [...items]
需要使用函数表达式的场合,尽量用箭头函数代替。因为这样更简洁,而且绑定了 this
· 如果模块只有一个输出值,就使用 export default,如果模块有多个输出值,就不使用 export default,export default 与普通的 export 不要同时使用
· 如果模块默认输出一个函数,函数名的首字母应该小写。
· 如果模块默认输出一个对象,对象名的首字母应该大写。
指令规范
Props 定义应该尽量详细
注释
类型
是否必传
非必传:默认值
方法名 | 说明 |
showListData |
获取列表页数据 |
addFun |
点击新增 |
refreshData |
刷新列表页 |
delInfo |
删除 |
delCancel |
取消删除 |
moreDelFun |
批量删除 |
handelSelection |
列表页数据多选 |
saveFun |
保存 |
cancelFun |
取消 |
getDetail |
查看详情 |
语义 | 命名 | 简写 |
文档 | doc | doc |
头部 | head | hd |
主体 | body | bd |
尾部 | foot | ft |
主栏 | main | mn |
主栏子容器 | mainc | mnc |
侧栏 | side | sd |
侧栏子容器 | sidec | sdc |
盒容器 | wrap/box/wrap/box | |
模块 | model | .m- |
元件 | unit | .u- |
导航 | nav | nav |
子导航 | subnav | snav |
面包屑 | crumb | crm |
菜单 | menu | menu |
选项卡 | tab | tab |
标题区 | head/title | hd/tt |
内容区 | body/content | bd/ct |
列表 | list | list |
表格 | table | tb |
表单 | form | fm |
热点 | hot | hot |
排行 | top | top |
登录 | login | log |
标志 | logo | logo |
广告 | advertise | ad |
搜索 | search | sch |
提示 | tips | tips |
帮助 | help | help |
新闻 | news | news |
下载 | download | dld |
注册 | regist | reg |
投票 | vote | vote |
版权 | copyright | cprt |
结果 | result | rst |
显示 | show | show |
隐藏 | hide | hide |
打开 | open | open |
关闭 | close | close |
出错 | error | err |
不可用 | disabled | dis |
const dicData=[ { name:“性别”, data:[ { value:0, label:”男” }, { value:1, label:”女” } ] } ]
修改日期 | 修改人 | 备注 |
2020-07-28 11:15:40[当前版本] | 陈婉 | 格式调整 |
2020-03-09 11:33:51 | 陈婉 | 格式调整 |
2020-03-09 11:28:50 | 陈婉 | 格式调整 |
2020-03-09 10:37:48 | 陈婉 | 格式调整 |