宁波芯赛云——vue项目规范(管理台)

一、 文件/文件夹命名规范

1. src/Views

  • 以一级菜单或模块分文件夹:权限管理、会员管理
  • 文件夹为大驼峰命名:PermissionManagement、Login
  • 各个模块下页面以页面path大驼峰命名:MemberList.vue、MenuManagement.vue
  • 不要用index.vue文件,除非该菜单下包含三级路由:列表详情需要单独页面,可以把列表和详情页都放在三级菜单,index.vue作为router-view容器
  • 模块下的静态数据、类型定义、脱耦方法、复杂方法、数据处理方法等可提取的一切都放到对应模块下的js中,以功能创建文件:const.ts、func.ts、types.ts
  • 模块下组件提取到component文件夹下,页面组件非必要不提取,必要条件:单独功能点(上下文耦合极低)、复用(覆盖超过80%)

2. src/components

  • 组件本身使用大驼峰命名
  • 0耦合组件直接放在basic文件夹下:任何项目都可以用 Icon.vue
  • 本项目组件按照组件类型分文件夹:2种表格/table/DefaultTable.vue和/table/ColorTable.vue、/modal/DefaultDialog.vue

3.其他

  • 任何文件命名都要规范,最少做到望文知义

二、src/styles/提取规范

  • 提取的样式一般不涉及业务
  • 提取的颗粒度做到最小
  • 提取的样式class以功能命名:m-top-16(mt-16),text-aline-center(ta-center)
  • 提取的样式的值必须是项目中常用的:例如padding和margin一般ui设计的时候都是有规范的,例如8px、16px、24px或者10px、20px、30px之类的,例如flex定义为1的情景,特殊场景在vue文件内自定义
  • ui框架需要统一样式覆盖的情景(官方方案满足不了),样式覆盖外层一定要带上业务class,避免影响到其他同事的页面,需要覆盖的页面直接附上class即可
  • 业务样式不需要提取,复用性高的话就要考虑为什么不提取组件了
  • class都是以小写中划线命名,别和我说什么方便复制
  • 补充一点:通用class以功能命名,那么业务class就一定是以业务来命名:user-block、username、user-age,2种命名不要弄混了

三、src/components/提取规范

  • 组件比较复杂或和业务关联性比较强的时候,可以对组件本身进行拆分
  • 组件的不同情景尽量使用slot,不要使用if-else
  • 组件的样式尽量不使用公共class,而是再组件内部消化(方便其他项目单独使用)

四、src/utils/、src/const/、src/hooks/提取规范

  • utils 为全局工具类,里面是全局的方法:request.ts、dateFormate.ts、auth.ts
  • const为项目常量,一般是键值对、固定的数据列表等,最好按照业务模块文件区分
  • hooks前提必须先明白什么是hook,然后再进行提取,理论上hook对业务是极低耦合的:每个页面都要记录用户行为,那么点击上报这就是一个hook
  • 当然要utils干净一点,可以有一个单独的func文件夹,用来放公共方法

五、其他规范(参考)

https://www.jianshu.com/p/85e93d2ce8f6
https://gitee.com/webxingjie/document/blob/master/前端开发规范.md


未完待续

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容