狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

VUE前端代碼開發規范

admin
2024年3月20日 15:30 本文熱度 667

目的及文檔說明

規范的目的是為了統一編碼風格規范,提高代碼質量和可讀性,增強團隊協作開發效率(參考騰訊、百度、字節跳動,同時參考前端代碼規范 --代碼規范篇 - 掘金 (juejin.cn)[1]等前端規范)

HTML 規范

2.1.語義化標簽

標簽語義化,切忌清一色的  div  元素。列表可以使用  ul li,文字使用  p  標簽,標題使用  h*  標簽,等等。 HTML5  推出了語義化的標簽,建議使用:section,aside,header,footer,article,等  HTML5  布局標簽。

2.2.自定義標簽

使用自閉標簽的寫法,如下

<my-owner-components />
2.3. 多特性分行寫
<template>
  <scroll
     ref="scrollWrap"
     class="home-scroll-warp"
     :data="homeData"
     :pullDownRefresh="true"
     :pullUpLoad="true"
     @pullingDown="pullingDownGetNewData"
     @pullingUp="pullingUpGetMore"
  />

</template>
2.4. 使用表達式

在模版中使用表達式,復雜情況使用計算屬性或函數,如下:

<template>
 <div v-show="getLimitData(data)">
  ...
 </div>

</template>

/
/ 反例
<template>
 <div v-show="data.type !== 'dir' && dzqz && hasBtn && attrs.mode !== 'ended'">
  ...
 </
div>
</template>
2.5.代碼嵌套

根據元素嵌套規范,每個塊狀元素獨立一行,內聯元素可選,如下:

// 第一種
<div>
 <h1></h1>
 <p></p>
</div>
<p><span></
span><span></span></p>

/
/ 第二種
<div>
 <h1></
h1><p></p>
</div>
<p>
 <span></
span>
 <span></span>
</p>
2.6.避免重復

避免過多重復代碼,如果超過三行類似的代碼,配置數據再循環遍歷

2.7.活用 v-show, v-if (不要同時出現在一個標簽上)
  • v-show 不會改變 dom 樹,也就是說不會導致重排。
  • v-if 會改變 dom 樹,會導致重排。
2.7 注釋規范
<!-- 單行注釋 -->
<div class="test">
 <!-- 組件注釋 -->
 <gdCustomTable ref="gdCustomTable" />
 <!-- 其他注釋 -->
 <div>...</div>
</div>


<!--
 多行注釋
 多行注釋
-->
<div>內容</div>

CSS 規范

推薦使用 UnoCSS 引擎進行原子化 CSS 開發 推薦使用 scss 預編譯 由于樣式的情況比較多也比較復雜 做出如下規范

3.1.避免
  • 避免使用標簽選擇器。因為在  Vue  中,特別是在局部組件,使用標簽選擇器效率特別低,損耗性能,建議需要的情況,直接定義  class;

  • 非特殊情況下,禁止使用  ID  選擇器定義樣式。有  JS  邏輯的情況除外;

  • 避免使用 important 選擇器;

  • 避免大量的嵌套規則,控制在 3 級之內,對于超過 4 級的嵌套,考慮重寫或新建子項;

  • 避免使用 ID 選擇器及全局標簽選擇器防止污染全局樣式;

3.2.推薦使用
  • 提取公用樣式進 assets 文件 styles 里,按模塊/功能區分;
|assets
|-- styles
| |-- common 放置公用樣式,如重置,混合,復寫element樣式等
| |-- modules 放置模塊樣式
  • 推薦使用直接子選擇器;
/* 推薦 */
.jdc {}
.jdc li {}
.jdc li p{}

/* 不推薦 */
*{}
#jdc {}
.jdc div{}
  • 使用  scoped  關鍵字,約束樣式生效的范圍
<style lang="scss" scoped>
.app-wrapper {
 ...
}
</style>
  • 使用變量 可復用屬性盡量抽離為頁面變量,易于統一維護
/* css */
.class-name {
 color: red;
 border-color: red;
}

/* scss */
$color: red;
.class-name {
 color: $color;
 border-color: $color;
}
3.3.書寫順序

CSS  屬性書寫順序:先決定定位寬高顯示大小,再做局部細節修飾,推薦順序(可以提升瀏覽器渲染  dom  的性能):

定位屬性(或顯示屬性,display)->寬高屬性->邊距屬性(margin, padding)->字體,背景,顏色等,修飾屬性的定義,這樣定義為了更好的可讀性,讓別人只要看一眼就能在腦海中浮現最終顯示的效果。

  1. 布局定位屬性:display / position / float / clear / visibility / overflow

  2. 自身屬性:width / height / margin / padding / border / background

  3. 文本屬性:color / font / text-decoration / text-align / vertical-align / white- space / break-word

  4. 其他屬性(CSS3):content / cursor / border-radius / box-shadow / text-shadow / background:linear-gradient … 以下給出常用的定義示例:

.class-name {
 position: fixed;
 top: 100px;
 left: 0;
 right: 0;
 bottom: 0;
 display: block;
 width: 100%;
 height: 100%;
 margin: 10px;
 padding: 10px;
 font-size: 14px;
 color: #000;
 background-color: red;
 border-radius: 2px;
 line-height: 1.42;
}
3.4.樣式覆蓋

組件內部需要覆蓋 UI 框架樣式,必須在最外層組件加類名

3.5.注釋規范

以/ 注釋內容 /格式注釋,前后空格,嵌套子類需要一個回車分割開

/* 注釋內容 */
.pha-element {
 width: 20px;
 /* 這里需要換行 */
 .pha-element-l {
   color: blue
 }
}

JS 規范

4.1.在 vue-cli  腳手架使用架自帶的指向  src  開發目錄的  '@'  符號引入文件資源;
4.2.使用計算屬性規避  v-if  和  v-for  用在一起;
4.3.統一使用單引號;
4.4.堅持單一原則,函數內僅做該函數應該做的,盡量避免通過傳入標記控制不同行為;
4.5.優先考慮三目運算符,但謹記不要寫超過 3 層的三目運算符;
4.6.對于無用代碼必須及時刪除,例如:一些調試的 console 語句、無用的棄用功能代碼,如在開發分支可提交打印代碼,但要注意打印格式,如下:
// 推薦
console.log('路由': 文件路由, '打印簡述': 打印數據)

// 不推薦
console.log(打印數據, '1111')
4.7.條件語句避免負面條件,特指調用某一函數;
// 不推薦
if (!isUserNotBlocked(user)) {
 // ...
}
4.8.請求數據的方法,推薦使用 async await, 需注意錯誤捕捉
/**
* 接口請求
* @param req 接口api
* @param params 參數
*/

const loading = ref(false)
async httpInterface(req, params) {
 try {
   loading.value = true
   const res = await req(params)
   returnPromise.resolve(res)
 } catch (e) {
   returnPromise.reject(e)
 } finally {
   loading.value = false
 }
}

4.9.注釋規范
  1. 單行注釋:雙斜線后應跟空格,且縮進與上下文的代碼保持一致;或在行尾注釋,在行尾依然需要左右空格;
// 一些說明...
const userID = 24;
const userID = 12; // 一些說明
  1. 多行注釋:一般用于注釋難以理解的、可能存在錯誤的、邏輯強的代碼,且縮進一致;
/*
* 針對下方代碼的說明
* 第一行太長寫第二行
*/

const a = 1
  1. 函數注釋:寫明傳入參數名稱,類型,推薦完整注釋以下格式;
/**
* @Description 加入購物車
* @Author lint
* @Date 2020-09-08
* @param {Number} goodId 商品id
* @param {Array<Number>} specs sku規格
* @param {Number} amount 數量
* @param {String} remarks 備注
* @returns <Promise> 購物車信息
*/

apiProductAddCard = (goodId, specs, amount, remarks) => {
 return axios.post('***', { goodId, specs, amount, remarks })
}

命名規范

5.1.目錄命名
  • 文件目錄命名 按照小駝峰命名,首字母小寫(如:projectName)
  • 組件目錄命名 目錄命名為小駝峰,公用組件加上 gd 前綴,如:
|components
|-- gdCustomCheck
| |-- index.vue
|-- gdCustomTable
| |-- index.vue
5.2.文件命名

按照小駝峰命令,英文單詞過長或超出 2 個以上,可縮略至前四位,如

// 業務統計
approvalStatistical

// 縮略
approvalStat
5.3.圖片命名

圖片使用 img,圖標使用 icon

  • img_功能/類型_編號
  • icon_功能/類型_編號
5.4.方法命名
  1. 按照小駝峰命名法,可使用常見動詞約定;
  • can 判斷是否可執行某個動作,函數返回一個布爾值。true:可執行;false:不可執行
  • has 判斷是否含有某個值, 函數返回一個布爾值。- true:含有此值;false:不含有此值
  • is: 判斷是否為某個值,函數返回一個布爾值。true:為某個值;false:不為某個值
  • get: 獲取某個之,函數返回一個非布爾值
  • set: 設置某個值,無返回值、返回是否設置成功或者返回鏈式對象 load 加載某些數據,無返回值或者返回是否加載完成的結果
  1. 語義化英文命名,僅組件內部使用方法前加上_(下劃線)區分,如下
// 公共方法的定義,可以提供外面使用
publicbFunction () {}

// 私有方法,下劃線定義,僅供組件內使用。多單詞,注意與系統名字沖突!
_privateFunction () {}
  1. 引入組件:首字母大寫的駝峰法命名。推薦使用  ES6  的方式引入
import Article from'xxx'
import ArticleDetail from'xxx'
  1. 變量:使用駝峰式命名,優先使用letconst、避免使用var
let userName = ref('luffy')

const userInfo = reactive({
 name: 'luffy'
})

  1. 常量:字母全部大寫,以下橫線_劃分
const Api = {
 ITEMS_OFONE_TYPE = '***', // 獲取事項分類
 SOLUTION_LIST = '***',, // 獲取事項列表
}
5.5.常用詞
  1. 常用動詞

簡寫說明
get\set取值\給值
add\remove增加\移除
show\hide顯示\隱藏
view查看
browse瀏覽
edit修改
save保存
delete刪除
find查詢
undo撤銷
redo重做
clean清除
index索引
observe觀察
send\receive發送\接收
refresh\synchronize刷新\同步

  1. 常用縮寫

數據類型/標簽簡寫后綴
objectobj
arrayarr
jsonjson
functionfn
messagemsg
buttonbtn

5.6.樣式命名

class 命名以小寫字母開頭,小寫字母、中劃線和數字組成。不建議使用駝峰法命名  class  的屬性。以下是一些常用到的  class 的名字:

  • 包裹層: .xx-wrap;
  • 列表: .xx-list;
  • 列表項: .xx-list-item;
  • 左邊內容: .xx-left;
  • 中間內容: .xx-middle;
  • 右邊內容: .xx-right;
  • 某個頁面: .xx-page;

Git 規范

master 分支作為主干分支,及生產環境,多人協同開發時一定要按照分支規范去建立和提交分支,具體如下:

  • master 分支:主干分支,與線上正式版本保持一致
  • dev 分支:開發分支,始終與 master 分支保持一致
  • feature 分支:版本開發分支(多個)
  • test 分支:版本測試分支(多個,對應 feature)
  • release 分支:預發布分支
  • bug 分支
6.1.分支關系

6.2.使用說明
  • 多人在同一個分支上開發時,分支名稱可按照版本號命名,注意記錄版本號對應功能點;
  • dev 分支可提交打印說明,注意打印說明格式,其他分支不可提交;
  • 提交時盡量書寫提交代碼修改的地方或功能,不要提交無用信息。

該文章在 2024/3/21 15:54:48 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved