《前端Vue开发规范》

一、规范目的

  • 提高团队协作效率
  • 便于后台人员添加功能及前端后期优化维护
  • 输出高质量的文档

二、 结构化规范

1、目录文件夹及子文件规范 

当使用临时文件时,在使用后,接口已经有了,发版后清除

|--src            #项目目录
|    |--api            #数据请求
|    |    |--Home            #首页页面api
|    |    |--Kind            #分类页面api
|    |--assets            #资源
|    |    |--css            #css资源
|    |    |--images            #图片资源
|    |    |--icons            #图标资源
|    |--components            #组件
|    |    |--common            #公共组件
|    |    |--Home            #首页页面组件
|    |    |--kind            #分类页面组件
|    |--routes            #路由
|    |--stores            #状态管理
|    |    |--Home            #首页页面的公共状态
|    |    |--Kind            #分类页面的公共状态
|    |--utils            #工具
|    |--views            #页面
|    |    |--Home            #首页页面
|    |    |--kind            #分类页面
|    |--main.ts            #入口文件
2、Vue 文件基本结构 

 Vue3基本结构

<template>
    <div class="roleview">
        角色管理
    </div>
</template>

<script setup lang="ts">
import { reactive, ref } from 'vue'
import { useRouter } from 'vue-router';

// 路由
const Router = useRouter()


</script>

<style lang="scss" scoped>
.roleview {
    width: 100%;
    height: 100%;
    background-color: antiquewhite;
}
</style>

Vue2 + Ts 基本结构

<template>
  <div class="testview">

  </div>
</template>

<script lang="ts">
// use TypeScript
import { Vue, Component } from "vue-property-decorator";
@Component({
  components: {},
})
export default class test extends Vue {
  mounted() {

  }

}
</script>

<style lang="scss" scoped>
.testview {
    width: 100%;
    height: 100%;
    background-color: antiquewhite;
}
</style>

Vue2基本机构 

<template>
    <div>
      <!--必须在div中编写页面-->
    </div>
  </template>
  <script>
    export default {
      components : {
      },
      data () {
        return {
        }
      },
      mounted() {
      },
      methods: {
      }
   }
  </script>
  <!--声明语言,并且添加scoped-->
  <style lang="scss" scoped>

  </style>
3、多个特性的元素规范 

 多个特性的元素应该分多行撰写,每个特性一行,增强可读性。

<!-- bad -->
< img src="https://vuejs.org/images/logo.png" alt="Vue Logo">
<my-component foo="a" bar="b" baz="c"></my-component>
 
<!-- good -->
<img
  src="https://vuejs.org/images/logo.png"
  alt="Vue Logo"
>
<my-component
  foo="a"
  bar="b"
  baz="c"
>
</my-component>
4、元素特性的顺序 

 原生属性放前面,指令放后面

- 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
5、组件选项顺序

Vue2项目如下所示:

- components
- props
- data
- computed
- created
- mounted
- metods
- filter
- watch

三、命名规范

  • 为了让大家书写可维护的代码,而不是一次性的代码
  • 让团队当中其他人看你的代码能一目了然
  • 甚至一段时间后你再看你某个时候写的代码也能看
1、普通变量命名规范 

命名方法:

        小驼峰命名法

命名规范:

        1.命名必须是跟需求的内容相关的词;比如说我想声明一个常量,用来表示我的学校

const myScool = "安阳工学院";

        2.命名是复数的时候需要加s,比如说我想声明一个数组,表示很多人的名字

const names = new Array( );
2、常量 

命名方法:

        全部大写

命名规范:

        使用大写字母和下划线来组合命名,下滑线用以分隔单词

const MAX_COUNT = 10
const URL = 'https://www.baidu.com/'
3、组件命名规范 

官方文档推荐及使用遵循规则:

  1. PascalCase(单词首字母大写命名)是最通用的声明约定
  2. kebab-case(短横线分隔命名)是最通用的使用约定
  • 组件名应该始终是多个单词的,根组件App除外
  • 有意义的名词、简短、具有可读性
  • 命名遵循PascalCase约定
    • 公用组件以Abcd(公司名缩写简称)开头,如(AbcdDatePicker,Abcdtable)
    • 页面内部组件以组件模块名简写为开头,Item为结尾,如(StaffBenchToChargeItem,StaffBenchAPPNotArrItem)
  • 使用遵循kebab-case约定
  • 在页面使用组件需要前后闭合,并以短线分隔,如(<abcd-data-picker></abcd-data-picker>,<abcd-table></abcd-table>)
  • 导入及注册组件时,遵循PascalCase约定
  • 同时还需要注意:必须符合自定义元素规范:切勿使用保留字。
4、方法命名规范 
  • 驼峰式命名,统一使用动词+名词形式
  • axios方法以get、post开头,以data结尾
  • 事件方法以on开头
  • init、refresh单词除外
  • 尽量使用常用的单词(set、get、open、close、jump、go、on、submit)
#函数常用动词
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 聚集
 5、views 文件夹下命名规范

 views下的文件夹命名

  • views下面的文件夹代表着模块的名字,一般直接由页面中文名称翻译为英文名称
  • 英文名称第一个单词的首字母小写,后面的每个单词的首字母大写
  • 尽量不要使用index给文件夹命名

views文件夹内部的文件命名规范

  • views下面的 vue 文件代表着页面的名字
  • 放在模块文件夹之下
  • 只有一个文件的情况下不会出现文件夹,而是直接放在views目录下面,如Login Home
  • 尽量是名词
  • 大写开头,开头的单词就是所属模块名字(Cardetail,CarEdit,CarList)
6、components 文件夹下命名规范

同上

7、api 文件夹下命名规范

同上

四、注释规范

        代码注释在一个项目的后期维护中显得尤为重要,所以我们要为每一个被复用的组件编写组件使用说明,为组件中每一个方法编写方法说明

1、 务必添加注释列表
  •  公共组件使用说明
  • 各组件中重要函数或者类说明
  • 复杂的业务逻辑处理说明
  • 特殊情况的处理说明,对于代码中特殊用途的变量、存在临界值、函数中使用的hack、使用了某种算法或思路等需要进行注释描述
  • 多重if判断语句
  • 注释必须以/**  (至少两个星号)开头 **/
  • 单行注释使用//
2、单行注释

注释单独一行,不要在代码后的同一行注释

  bad

  var name =”abc”; // 姓名    

  good

  // 姓名
  var name = “abc”;         
3、多行注释
组件使用说明,和调用说明
      /**
      * 组件名称
      * @module 组件存放位置
      * @desc 组件描述
      * @author 组件作者
      * @date 2023年05月10日12:00:02
      * @param {Object} [title]    - 参数说明
      * @param {String} [columns] - 参数说明
      * @example 调用示例
      *  <hbTable :title="title" :columns="columns" :tableData="tableData"></hbTable>
      **/

五、编码规范

思考中

六、CSS 规范 

思考中

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值