Vue項目代碼規(guī)范

一豪治、UI框架及css預(yù)處理器選擇

1耘婚、PC端Vue項目UI框架:ElementUI(優(yōu)先)、iView
2关翎、移動端Vue項目UI框架:mint-ui(優(yōu)先)扛门、vant
3、sass/scss纵寝、less论寨、stylus ?????
推薦less:less相對比sass更簡潔,而stylus的語法靈活性開放性過大爽茴,不利于團隊協(xié)作開發(fā)葬凳。

二、腳手架室奏、插件選擇

2.1火焰、腳手架vue-cli2.0 OR vue-cli3.0
推薦vue-cli2.0:團隊中熟悉2.0版本腳手架的人居多,腳手架是一個工具類的存在胧沫。
2.2昌简、網(wǎng)絡(luò)請求:axios
2.3、時間格式化插件:momentjs
2.4绒怨、富文本編輯器:ueditor
2.5纯赎、圖片剪裁插件:cropperjs
2.6、圖表:echarts

三南蹂、命名規(guī)范

3.1犬金、id和class的命名原則

應(yīng)反映該元素的功能或使用通用名稱,而不要用抽象的晦澀的命名(原則:見名知其義)

3.2碎紊、文件夾佑附、文件名、id仗考、class具體命名規(guī)范:駝峰命名法

  • 文件夾采用“大駝峰命名法”
例:DataBaseUser:變量DataBaseUser單詞首字母大寫。
注:文件名不要以中文或人名命名词爬,可以在文件內(nèi)部注釋說明是誰修改或建立的這個文件
  • 文件名采用“大駝峰命名法”
例:DataBaseUser:變量DataBaseUser單詞首字母大寫秃嗜。
  • id:采用“小駝峰命名法”
例:myStudentCount:變量myStudentCount第一個單詞是全部小寫,后面的單詞首字母大寫顿膨。
  • class:采用“中劃線法命名法”
例:print-employee-paychecks:函數(shù)名中的每一個邏輯斷點都有一個下劃線來標(biāo)記锅锨。

3.3、id和class命名越精簡越好恋沃,只要足夠表達意思必搞,這樣有助于理解,同時也能提高代碼效率

.navigation{} /* 不推薦 */
.login_box_inside_con{} /* 不推薦 */
.nav{} /* 推薦 */

3.4囊咏、命名嵌套問題

書寫css要注意先后順序和嵌套問題恕洲,從性能上考慮盡量減少選擇器的層級

.nav ul.list{} /* 不推薦 */
.nav .list{} /* 推薦 */

3.5塔橡、命名中盡量避免使用中文拼音,應(yīng)該采用更簡明有語義的英文單詞進行組合

  • 命名注意縮寫霜第,但是不能盲目縮寫葛家;
  • 不允許通過1、2泌类、3等序號進行命名癞谒;
  • 避免class與id重名;
  • id注意用于標(biāo)識模塊或頁面的某一個父容器區(qū)域刃榨,名稱必須唯一弹砚,不要隨意新建id;
  • class用于標(biāo)識某一個類型的對象枢希,命名必須言簡意賅桌吃;
  • 盡可能提高代碼模塊的復(fù)用,樣式盡量用組合的方式晴玖;
  • 規(guī)則名稱中不應(yīng)該包含顏色读存、定位等與具體顯示效果相關(guān)的信息,應(yīng)該用意義命名呕屎,而不是結(jié)果名稱让簿。

3.6、Vue 項目中的命名

* Store 中的Module 使用“小駝峰命名法”
* Store 中的Mutation 使用 全部大寫的下劃線命名法
* Store 中的state/getters/action 使用“小駝峰命名法”
* 組件必須使用“大駝峰命名法”命名法,
* 引用組件時禁止使用別名秀睛,模板內(nèi)組件標(biāo)簽名遵循h(huán)tml 標(biāo)簽命名規(guī)范尔当,或者使用組件名
* 組件名必須避免使用Vue保留標(biāo)簽名(包括HTML標(biāo)簽和Vue內(nèi)部標(biāo)簽)
* 組件文件和組件使用相同的名字
* 前端路由路徑使用全小寫命名法

四、排版規(guī)范

4.1蹂安、代碼格式

  • 1椭迎、大括號的使用約定。
* 如果是大括號內(nèi)為空田盈,則簡潔地寫成{}即可畜号,不需要換行
例:{}

* 非空代碼塊則:
(1)左大括號前不換行有空格;
(2)左大括號后換行允瞧;
(3)右大括號前換行简软;
(4)右大括號后還有else等代碼則不換行;
(5)表示終止的右大括號后必須換行。
例:
    methods: {
        testFunc () {
            console.log("測試方法");
            var flag = false;
            if (this.num === 0) {
                flag = true;
            } else {
                 flag = false;
            }
        }
    }
  • 2述暂、左右小括號與中間字符之間不出現(xiàn)空格痹升。
例:
if (this.num === 0) {  // 左右小括號()中間字符直接不出現(xiàn)空格
    flag = true;
} 
  • 3、if/for/while/switch 等保留字與括號之間都必須加空格畦韭。
例:
if () {}
for () {}
while () {}
switch () {}
  • 4疼蛾、任何二目、三目運算符的左右兩邊都需要加一個空格艺配。
例:
int a = 1, b = 2, z, c = 3;
z = a > b ? a : (b > c ? b : c);
  • 5察郁、注釋的雙斜線與注釋內(nèi)容之間有且只有一個空格
例:
// 我就是個注釋信息展示
/** 我就是個注釋信息展示 **/
/** 
 ** 我就是個注釋信息展示 
**/
  • 6衍慎、方法參數(shù)在定義和傳入時,多個參數(shù)逗號后邊必須加空格绳锅。
例:
    methods: {
        testFunc (pra1, pra2, pra3) {
            console.log("測試方法");
            var flag = false;
            if (this.num === 0) {
                flag = true;
            } else {
                 flag = false;
            }
        }
    }
  • 7西饵、在 if/else/for/while/do 語句中必須使用大括號。即使只有一行代碼鳞芙,避免采用 單行的編碼方式:if (condition) statements;

五眷柔、項目目錄結(jié)構(gòu)

5.1、項目初始目錄

├── node_modules  // 項目依賴包文件夾
├── build   // 編譯配置文件原朝,一般不用管
│   ├── build.js
│   ├── check-versions.js
│   ├── dev-client.js
│   ├── dev-server.js
│   ├── utils.js
│   ├── vue-loader.conf.js
│   ├── webpack.base.conf.js
│   ├── webpack.dev.conf.js
│   └── webpack.prod.conf.js
├── config  // 項目基本設(shè)置文件夾
│   ├── dev.env.js  // 開發(fā)配置文件
│   ├── index.js  // 配置主文件
│   └── prod.env.js  // 編譯配置文件
├── index.html   // 項目入口文件
├── package-lock.json  // npm5 新增文件驯嘱,優(yōu)化性能
├── package.json  // 項目依賴包配置文件
├── src    // 我們的項目的源碼編寫文件
│   ├── App.vue  // APP入口文件
│   ├── assets  // 初始項目資源目錄,回頭刪掉
│   │   └── logo.png
│   ├── components // 組件目錄
│   │   └── Hello.vue // 測試組件喳坠,回頭刪除
│   ├── main.js // 主配置文件
│   └── router // 路由配置文件夾
│       └── index.js   // 路由配置文件
└── static // 資源放置目錄

5.2 src目錄配置

├── App.vue // APP入口文件
├── components  // 組件文件夾
│   └──common  // 共用組件文件夾
│   └──page  // 我們的頁面組件文件夾
│   │   ├── home   // 模塊劃分文件夾
│   │   ├── user     // 模塊劃分文件夾
│   └──Main.vue    // 項目主入口文件
├── plugins  // 項目配置文件夾
│   └── ajax // 網(wǎng)絡(luò)請求配置文件
│   │   ├── http.js     // 網(wǎng)絡(luò)請求封裝文件
│   └── api  // 常用工具文件夾
│   │   ├── index.js     // 自定義工具注冊入口
│   │   ├── ValideCard.js     // 身份證驗證規(guī)則文件
│   │   ├── valideEmail.js     // 郵箱驗證規(guī)則
│   │   ├── valideTel.js         // 手機號證規(guī)則
│   └── url  // 項目配置文件
│   │   ├── index.js     // 接口注冊入口
│   │   ├── url.js         // 接口API自定義文件
├── main.js  // 項目配置文件
├── router  // 路由配置文件夾
│   └── index.js  // 路由配置文件
├── style  // scss 樣式存放目錄(待定鞠评,選用less或scss)
│   ├── base   // 基礎(chǔ)樣式存放目錄
│   │   ├── _base.scss   // 基礎(chǔ)樣式文件
│   │   ├── _color.scss  // 項目顏色配置變量文件
│   │   ├── _mixin.scss  // scss 混入文件
│   │   └── _reset.scss  // 瀏覽器初始化文件
│   ├── scss   // 頁面樣式文件夾
│   │   ├── _content.scss  // 內(nèi)容頁面樣式文件
│   │   └── _index.scss  // 列表樣式文件
      └── style.scss  // 主樣式文件

5.3 CSS屬性編寫順序(一般遵循顯示屬性 -> 自身屬性 -> 文本屬性 -> 其他屬性的書寫格式)

  • 顯示屬性:display/list-style/position/float/clear...
  • 自身屬性(盒模型):width/height/margin/padding/border
  • 背景:background
  • 行高:line-height
  • 文本屬性:color/font/text-decoration/text-align/text-indent/vertical-align/white-space/content...
  • 其他:cursor/z-index/zoom/overflow...
  • CSS3屬性:transform/transition/animation/box-shadow/border-radius
  • 如果使用CSS3的屬性,如果有必要加入瀏覽器前綴壕鹉,則按照-webkit-/-moz-/-ms-/-o-/std的順序進行添加剃幌,標(biāo)準(zhǔn)屬性寫在最后
    鏈接的樣式請嚴格按照如下順序添加:a:link -> a:visited -> a:hover -> a:active


    屬性編寫順序.png

注:補充說明

1、刪除多余的空行

  • 所有方法與方法之間空1行

  • 所有代碼塊之間空1行

2晾浴、刪除多余的注釋

  • 刪除注釋掉的代碼

  • 刪除沒有意義的注釋

3负乡、刪除多余的方法

  • 如果方法沒有使用到,請刪除它

  • 如果方法沒有執(zhí)行任何業(yè)務(wù)邏輯脊凰,請刪除它或者給出一定注釋

4抖棘、刪除未被使用的資源文件

5、添加必要的注釋

  • 所有自定義的方法需要給出注釋

  • 比較大的代碼塊需要給出注釋

  • 所有代碼中出現(xiàn)的阿拉伯?dāng)?shù)字需要給出注釋

  • 程序中出現(xiàn)加密/解密 邏輯的操作地方狸涌,需要給出注釋說明過程(無論是系統(tǒng)還是自定義)

  1. 整體代碼風(fēng)格需要統(tǒng)一
  • 代碼后面的“{” 不需要單獨占用一行

  • 邏輯運算符 與 代碼之前空一格

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末切省,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子帕胆,更是在濱河造成了極大的恐慌朝捆,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件懒豹,死亡現(xiàn)場離奇詭異右蹦,居然都是意外死亡,警方通過查閱死者的電腦和手機歼捐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晨汹,“玉大人豹储,你說我怎么就攤上這事√哉猓” “怎么了剥扣?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵巩剖,是天一觀的道長。 經(jīng)常有香客問我钠怯,道長佳魔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任晦炊,我火速辦了婚禮鞠鲜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘断国。我一直安慰自己贤姆,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布稳衬。 她就那樣靜靜地躺著霞捡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪薄疚。 梳的紋絲不亂的頭發(fā)上碧信,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機與錄音街夭,去河邊找鬼砰碴。 笑死,一個胖子當(dāng)著我的面吹牛莱坎,可吹牛的內(nèi)容都是我干的铜跑。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼慕趴,長吁一口氣:“原來是場噩夢啊……” “哼深夯!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起乃正,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤住册,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瓮具,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荧飞,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年名党,在試婚紗的時候發(fā)現(xiàn)自己被綠了叹阔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡传睹,死狀恐怖耳幢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤睛藻,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布启上,位于F島的核電站,受9級特大地震影響店印,放射性物質(zhì)發(fā)生泄漏冈在。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一按摘、第九天 我趴在偏房一處隱蔽的房頂上張望包券。 院中可真熱鬧,春花似錦院峡、人聲如沸兴使。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽发魄。三九已至,卻和暖如春俩垃,著一層夾襖步出監(jiān)牢的瞬間励幼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工口柳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留苹粟,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓跃闹,卻偏偏與公主長得像嵌削,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子望艺,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1.Vue 組件命名 有意義的: 不過于具體苛秕,也不過于抽象 簡短: 2 到 3 個單詞 具有可讀性: 以便于溝通交...
    喝不醉再來閱讀 4,552評論 0 1
  • 前言 本開發(fā)規(guī)范基于《阿里巴巴Java開發(fā)手冊終極版》修改,并集成我們自己的項目開發(fā)規(guī)范找默,整合而成艇劫。 為表示對阿里...
    4ea0af17fd67閱讀 5,623評論 0 5
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)惩激,斷路器店煞,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • 身體越疲憊,思維越清醒风钻。 只有在沖突里顷蟀,在矛盾中,才會有一些新的東西誕生骡技。 新的想法衩椒,新的目標(biāo),甚至是新的人格。 ...
    十字街角閱讀 226評論 0 0
  • 面談和電話還是會有很大差距毛萌,很多人在電話中不會回答你這么多問題,會以太忙為理由喝滞,掛斷電話阁将,可是見面就不同,他可以邊...
    甜心教主閱讀 131評論 0 0