vue开发规范

Vue 开发规范目录及说明

  • 规范目的
  • 命名规范
  • 结构化规范注
  • 释规范
  • 编码规范
  • CSS 规范
规范目的

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

命名规范

为了让大家书写可维护的代码,而不是一次性的代码
让团队当中其他人看你的代码能一目了然
甚至一段时间时候后你再看你某个时候写的代码也能看

普通变量命名规范
  • 命名方法 :驼峰命名法
  • 命名规范 :
  1. 命名必须是跟需求的内容相关的词,如
let  productPageDetail = "产品详情页面";
  1. 命名是复数的时候需要加s,如
const productList = new Array(); 
常量
  • 命名方法 : 全部大写
  • 命名规范 : 使用大写字母匈牙利式命名法。
const MAX_COUNT = 10
const URL = 'https://www.cupshe.com/'
组件命名规范(驼峰式命名)
  • 公用组件以cupshe_AR(公司+项目名)开头如:
cupsheAR-TopBar,
cupsheDE-TopBar
  • 页面内部组件以组件模块名简写为开头,Item 为结尾,如:
addToCartItem,
checkoutItem
method 方法命名命名规范
  • 匈牙利式命名,统一使用动词或者动词+名词形式
get_user_list,
submit_cart_product
  • 请求数据方法,以 data 结尾
get_product_list_data
get_user_data
views下的文件命名
  • 尽量是名词,且使用驼峰命名法
productDetailPage
props 命名
  • 在声明 prop 的时候,使用驼峰命名法,在模板中使用 kebab-case
<script>
props: {
    greetingText: String
}
</script>
<welcome-message greeting-text="hi"></welcome-message>
结构化规范
目录文件夹及子文件规范

以下统一管理处均对应相应模块
以下全局文件文件均以 index.js 导出,并在 main.js 中导入
以下临时文件,在使用后,接口已经有了,发版后清除

src                               源码目录
|-- api                              接口,统一管理
|-- assets                           静态资源,统一管理
|-- components                       公用组件,全局文件
|-- filters                          过滤器,全局工具
|-- icons                            图标,全局资源
|-- datas                            模拟数据,临时存放
|-- lib                              外部引用的插件存放及修改文件
|-- mock                             模拟接口,临时存放
|-- router                           路由,统一管理
|-- store                            vuex, 统一管理
|-- views                         视图目录
|   |-- staffWorkbench               视图模块名
|   |-- |-- staffWorkbench.vue       模块入口页面
|   |-- |-- indexComponents          模块页面级组件文件夹
|   |-- |-- components               模块通用组件文件夹
vue 文件基本结构
<template>
    <div>
      
    </div>
  </template>
  <script>
    export default {
      components : {
      
      },
      data () {
        return {
        
        }
      },
      mounted() {
      
      },
      methods: {
      
      }
   }
  </script>
  <!--声明语言,并且添加scoped-->
  <style lang="scss" scoped>
  
  </style>
组件选项顺序
- components
- props
- data
- computed
- created
- mounted
- metods
- filter
- watch
注释规范
务必添加注释列表
  1. 公共组件使用说明
  2. 各组件中重要函数或者类说明
  3. 复杂的业务逻辑处理说明
  4. 特殊情况的代码处理说明,对于代码中特殊用途的变量、存在临界值、函数中使用的 hack、使用
  5. 了某种算法或思路等需要进行注释描述
  6. 多重 if 判断语句
  7. 注释块必须以/(至少两个星号)开头/
  8. 单行注释使用//
编码规范
指令规范
:class="{'show-left':true}"
@click="getListData"
v-for 循环必须加上 key 属性,在整个 for 循环中 key 需要唯一
<ul>
    <li v-for="todo in todos" :key="todo.id">
        {{ todo.text }}
    </li>
</ul>
避免 v-if 和 v-for 同时用在一个元素上(性能问题)
  • 将数据替换为一个计算属性,让其返回过滤后的列表
<ul>
    <li v-for="user in activeUsers" :key="user.id">
      {{ user.name }}
    </li>
  </ul>
 
  <script>
  computed: {
    activeUsers: function () {
      return this.users.filter(function (user) {
        return user.isActive
      })
    }
  }
  </script>
  • 将 v-if 移动至容器元素上 (比如 ul, ol)
<ul v-if="shouldShowUsers">
    <li v-for="user in users" :key="user.id">
        {{ user.name }}
    </li>
</ul>
Props 规范
props: {
  status: {
    type: String,
    required: true,
    validator: function (value) {
      return [
        'syncing',
        'synced',
        'version-conflict',
        'error'
      ].indexOf(value) !== -1
    }
  }
}
其他

避免 this.$parent调试信息
console.log() debugger 使用完及时删除

除了三目运算,if,else 等禁止简写

CSS 规范

统一使用"-"连字符
省略值为 0 时的单位
如果 CSS 可以做到,就不要使用 JS
建议并适当缩写值,提高可读性,特殊情况除外

padding-bottom: 0;
margin: 0;
  • 分类的命名方法

使用单个字母加上"-"为前缀
布局(grid)(.g-);
模块(module)(.m-);
元件(unit)(.u-);
功能(function)(.f-);
皮肤(skin)(.s-);
状态(.z-)。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前端通用规范文档,猛戳这里 一.react一般规范 1.基本结构(使用mobx) ├── build ...
    lemonzoey阅读 3,443评论 2 4
  • 由于所在公司前端代码较不规范,近期应公司领导要求,整理出了一份公司内部的前端开发规范标准。这里参考了一些文章,并对...
    追寻1989阅读 1,241评论 0 3
  • 为了前端代码形成统一的风格,制定该代码规范(该规范部分参照VUE官网介绍的风格指南以及常用的规范) 1.文件夹命名...
    朋_朋阅读 682评论 0 1
  • 前言 好的命名规范可以让不用为取名字而苦恼,同时找bug时更快的定位到位置。 与它的功能相配套 不与其他业务组件命...
    呼呼X南风阅读 809评论 0 6
  • 目的 统一开发风格,使代码结构更加清晰明了。 前提条件 项目是用vue搭建的,前端vue打开项目是需要一个环境运行...
    风凌摆渡人阅读 543评论 1 4

友情链接更多精彩内容