vue開發(fā)規(guī)范

Vue 開發(fā)規(guī)范目錄及說明

  • 規(guī)范目的
  • 命名規(guī)范
  • 結(jié)構(gòu)化規(guī)范注
  • 釋規(guī)范
  • 編碼規(guī)范
  • CSS 規(guī)范
規(guī)范目的

為提高團(tuán)隊(duì)協(xié)作效率
便于后臺人員添加功能及前端后期優(yōu)化維護(hù)
輸出高質(zhì)量的文檔

命名規(guī)范

為了讓大家書寫可維護(hù)的代碼,而不是一次性的代碼
讓團(tuán)隊(duì)當(dāng)中其他人看你的代碼能一目了然
甚至一段時(shí)間時(shí)候后你再看你某個時(shí)候?qū)懙拇a也能看

普通變量命名規(guī)范
  • 命名方法 :駝峰命名法
  • 命名規(guī)范 :
  1. 命名必須是跟需求的內(nèi)容相關(guān)的詞,如
let  productPageDetail = "產(chǎn)品詳情頁面";
  1. 命名是復(fù)數(shù)的時(shí)候需要加s,如
const productList = new Array(); 
常量
  • 命名方法 : 全部大寫
  • 命名規(guī)范 : 使用大寫字母匈牙利式命名法。
const MAX_COUNT = 10
const URL = 'https://www.cupshe.com/'
組件命名規(guī)范(駝峰式命名)
  • 公用組件以cupshe_AR(公司+項(xiàng)目名)開頭如:
cupsheAR-TopBar,
cupsheDE-TopBar
  • 頁面內(nèi)部組件以組件模塊名簡寫為開頭,Item 為結(jié)尾,如:
addToCartItem,
checkoutItem
method 方法命名命名規(guī)范
  • 匈牙利式命名,統(tǒng)一使用動詞或者動詞+名詞形式
get_user_list,
submit_cart_product
  • 請求數(shù)據(jù)方法,以 data 結(jié)尾
get_product_list_data
get_user_data
views下的文件命名
  • 盡量是名詞,且使用駝峰命名法
productDetailPage
props 命名
  • 在聲明 prop 的時(shí)候,使用駝峰命名法,在模板中使用 kebab-case
<script>
props: {
    greetingText: String
}
</script>
<welcome-message greeting-text="hi"></welcome-message>
結(jié)構(gòu)化規(guī)范
目錄文件夾及子文件規(guī)范

以下統(tǒng)一管理處均對應(yīng)相應(yīng)模塊
以下全局文件文件均以 index.js 導(dǎo)出,并在 main.js 中導(dǎo)入
以下臨時(shí)文件,在使用后,接口已經(jīng)有了,發(fā)版后清除

src                               源碼目錄
|-- api                              接口,統(tǒng)一管理
|-- assets                           靜態(tài)資源,統(tǒng)一管理
|-- components                       公用組件,全局文件
|-- filters                          過濾器,全局工具
|-- icons                            圖標(biāo),全局資源
|-- datas                            模擬數(shù)據(jù),臨時(shí)存放
|-- lib                              外部引用的插件存放及修改文件
|-- mock                             模擬接口,臨時(shí)存放
|-- router                           路由,統(tǒng)一管理
|-- store                            vuex, 統(tǒng)一管理
|-- views                         視圖目錄
|   |-- staffWorkbench               視圖模塊名
|   |-- |-- staffWorkbench.vue       模塊入口頁面
|   |-- |-- indexComponents          模塊頁面級組件文件夾
|   |-- |-- components               模塊通用組件文件夾
vue 文件基本結(jié)構(gòu)
<template>
    <div>
      
    </div>
  </template>
  <script>
    export default {
      components : {
      
      },
      data () {
        return {
        
        }
      },
      mounted() {
      
      },
      methods: {
      
      }
   }
  </script>
  <!--聲明語言,并且添加scoped-->
  <style lang="scss" scoped>
  
  </style>
組件選項(xiàng)順序
- components
- props
- data
- computed
- created
- mounted
- metods
- filter
- watch
注釋規(guī)范
務(wù)必添加注釋列表
  1. 公共組件使用說明
  2. 各組件中重要函數(shù)或者類說明
  3. 復(fù)雜的業(yè)務(wù)邏輯處理說明
  4. 特殊情況的代碼處理說明,對于代碼中特殊用途的變量、存在臨界值、函數(shù)中使用的 hack、使用
  5. 了某種算法或思路等需要進(jìn)行注釋描述
  6. 多重 if 判斷語句
  7. 注釋塊必須以/(至少兩個星號)開頭/
  8. 單行注釋使用//
編碼規(guī)范
指令規(guī)范
:class="{'show-left':true}"
@click="getListData"
v-for 循環(huán)必須加上 key 屬性,在整個 for 循環(huán)中 key 需要唯一
<ul>
    <li v-for="todo in todos" :key="todo.id">
        {{ todo.text }}
    </li>
</ul>
避免 v-if 和 v-for 同時(shí)用在一個元素上(性能問題)
  • 將數(shù)據(jù)替換為一個計(jì)算屬性,讓其返回過濾后的列表
<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 規(guī)范
props: {
  status: {
    type: String,
    required: true,
    validator: function (value) {
      return [
        'syncing',
        'synced',
        'version-conflict',
        'error'
      ].indexOf(value) !== -1
    }
  }
}
其他

避免 this.$parent調(diào)試信息
console.log() debugger 使用完及時(shí)刪除

除了三目運(yùn)算,if,else 等禁止簡寫

CSS 規(guī)范

統(tǒng)一使用"-"連字符
省略值為 0 時(shí)的單位
如果 CSS 可以做到,就不要使用 JS
建議并適當(dāng)縮寫值,提高可讀性,特殊情況除外

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

使用單個字母加上"-"為前綴
布局(grid)(.g-);
模塊(module)(.m-);
元件(unit)(.u-);
功能(function)(.f-);
皮膚(skin)(.s-);
狀態(tài)(.z-)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前端通用規(guī)范文檔,猛戳這里 一.react一般規(guī)范 1.基本結(jié)構(gòu)(使用mobx) ├── build ...
    lemonzoey閱讀 3,444評論 2 4
  • 由于所在公司前端代碼較不規(guī)范,近期應(yīng)公司領(lǐng)導(dǎo)要求,整理出了一份公司內(nèi)部的前端開發(fā)規(guī)范標(biāo)準(zhǔn)。這里參考了一些文章,并對...
    追尋1989閱讀 1,244評論 0 3
  • 為了前端代碼形成統(tǒng)一的風(fēng)格,制定該代碼規(guī)范(該規(guī)范部分參照VUE官網(wǎng)介紹的風(fēng)格指南以及常用的規(guī)范) 1.文件夾命名...
    朋_朋閱讀 687評論 0 1
  • 前言 好的命名規(guī)范可以讓不用為取名字而苦惱,同時(shí)找bug時(shí)更快的定位到位置。 與它的功能相配套 不與其他業(yè)務(wù)組件命...
    呼呼X南風(fēng)閱讀 815評論 0 6
  • 目的 統(tǒng)一開發(fā)風(fēng)格,使代碼結(jié)構(gòu)更加清晰明了。 前提條件 項(xiàng)目是用vue搭建的,前端vue打開項(xiàng)目是需要一個環(huán)境運(yùn)行...
    風(fēng)凌擺渡人閱讀 543評論 1 4

友情鏈接更多精彩內(nèi)容