与后端保持一致
· 命名方法 : 全部大写
· 命名规范 : 使用大写字母和下划线来组合命名,下划线用以分割单词。
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 | 陈婉 | 格式调整 |