小程序開發(fā)規(guī)范

一锰霜、目錄概述

  • 基礎(chǔ)規(guī)范

頁面、樣式甜橱、行為逊笆、規(guī)范,不用首屏加載的盡量分包

  • 圖片文件

項(xiàng)目圖片文件放置于根目錄的images文件夾下岂傲,組件獨(dú)有的圖片放在當(dāng)前組件images目錄下
大圖進(jìn)行壓縮难裆,能用網(wǎng)絡(luò)鏈接的盡量用網(wǎng)絡(luò)鏈接

  • 模型文件

模型文件主要用于編寫各類業(yè)務(wù)模型。項(xiàng)目模型文件放置于根目錄的 models 文件夾下譬胎,組件相關(guān)模型放置于components目錄下的models文件夾中差牛。

  • 組件文件

所有組件相關(guān)文件統(tǒng)一放在components目錄下。

  • 行為文件

行為文件放在所引用的組件目錄下堰乔。

  • 計(jì)算文件

公用類計(jì)算文件放入公共 wxs 內(nèi)容中
私有計(jì)算文件放入當(dāng)前使用文件目錄下
頻繁用戶交互的效果在小程序上表現(xiàn)是比較卡頓的,用wxs 函數(shù)來響應(yīng)

二、WXML 規(guī)范

  • 標(biāo)簽盡量少

wxml 標(biāo)簽可以單獨(dú)出現(xiàn)的情況脐恩,盡量單獨(dú)出現(xiàn)镐侯,如 input

    <input/>
  • 減少每行代碼量

控制每行 HTML 的代碼數(shù)量在 50 個(gè)字符以內(nèi),方便閱讀瀏覽驶冒,多余的代碼進(jìn)行換行處理苟翻,標(biāo)簽所帶屬性每個(gè)屬性間進(jìn)行換行。

    <v-music
      wx:if="{{classic.type===200}}"
      img="{{classic.img}}"
      content="{{classic.content}}"
    >    
    <v-music>
  • 循環(huán)語句添加 key
    <switch wx:for="{{objectArray}}" wx:key="unique" >
      {{item.id}}
    </switch>
  • 循環(huán)語句 和 判斷語句分開
    <switch wx:for="{{objectArray}}" wx:key="unique" wx:if="{{item.id > 5}}">
      {{item.id}}
    </switch>
  • 合理展現(xiàn)分離內(nèi)容骗污,不要使用內(nèi)聯(lián)樣式崇猫。
    // 推薦使用
    <image class="tag"></image>
    
    // 不推薦    
    <image style="width:100rpx;height:100rpx"></image>    
  • 盡量多的使用有必要的注釋

除組件外的其他塊級(jí)元素,均需注釋出其功能需忿,并在其上下空出一行與其他代碼進(jìn)行區(qū)分诅炉。

    <view>...view>

    // 導(dǎo)航欄    
    <view>...view>
    <view>...view>
  • 基本組件使用優(yōu)先級(jí)

能用基本組件 viewtext屋厘、 button涕烧、 input等 減少使用 scroll-viewmovable-view

三汗洒、CSS 規(guī)范

  • rpxpx都能使用到议纯,rpx是基于iPhone 6的邏輯像素點(diǎn),在使用過程中針對(duì)屏幕做了適配溢谤,除了邊框線以外瞻凤,其他都是用rpx

  • 盡量使用簡(jiǎn)寫屬性憨攒,并且同一屬性放置在一起,避免散亂阀参。

    /** 使用簡(jiǎn)寫屬性 **/

    .v-image{
      margin: 0 auto;
    }
    
    /** 同一屬性放在一塊 **/
    
    .v-tag{
      margin-left: 10rpx;
      margin-right: 10rpx
    }
  • 采用 flex 進(jìn)行布局浓恶,禁止使用 float 以及 vertical-align。**
    .container{
      disaplay: flex;
      flex-dirextion: row
    }

避免使用全局命名 打包文件后會(huì)覆蓋

  • 同一個(gè)模塊的css文件放在一起结笨,關(guān)鍵樣式需要注視包晰,樣式之間使用空行分割
/* 頁面容器 */
.page-container {
    background: #f4f4f4;
}

/* 資金容器 */
.asset-container {
  margin: 20rpx;
}
  • 成組的 wxss 規(guī)則之間用塊狀注釋。請(qǐng)勿在代碼后面直接注釋炕吸。
    /** 修改 button 默認(rèn)的點(diǎn)擊態(tài)樣式類 **/
    .button-hover {
      background-color: red;
    }

四伐憾、JS規(guī)范

命名規(guī)范

  • 變量命名

    變量名以及函數(shù)名統(tǒng)一采用駝峰命名法

    myIncomeDetail
  • 類的命名

    使用字母開頭,多個(gè)單詞使用中劃線鏈接

    my-cart-detail
    my-cart-list
  • 方法命名規(guī)范

私有方法使用下劃線開頭

// 營(yíng)銷管理
  _getPromoteAmount: function() {
  
  },

點(diǎn)擊事件使用on開頭

// 聯(lián)系客服
  onContactServiceTap: function() {

  },

函數(shù)名前綴需加上清晰的動(dòng)詞表示函數(shù)功能

  • 采用 ES6 關(guān)鍵字 let 定義變量赫模,盡量不使用 var
    // 定義常量

    const a = 1
    
    // 定義變量
    
    let imageContent =  res.data
    
    // 函數(shù)命名
    
    getInfo:function(){
      return '';
    }
    
    // 私有函數(shù)
    
    _getInfo:function(){
      return '';
    }
  • 回調(diào)函數(shù)統(tǒng)一使用 Promise 函數(shù)的方式進(jìn)行編寫树肃,回調(diào)成功的參數(shù)統(tǒng)一為 res,錯(cuò)誤參數(shù)為 err瀑罗。
    // promise 處理回調(diào)

    let back = new Promise((resolve, reject) => {
      if (/* 異步操作成功 */){
        resolve(value);
      } else {
        reject(error);
      }
    
    });
    
    back.then((res) => {
        console.log('成功回調(diào)胸嘴!', res);
    }).catch((err) => {
        console.log('失敗回調(diào)!', error);
    });
  • 數(shù)據(jù)綁定變量定義規(guī)范

所有涉及到數(shù)據(jù)綁定的變量均需在 data 中初始化斩祭。禁止在不定義的情況下直接 setData劣像。

    Pages({
      data:{
         id : null
      },
    
      onLoad:function(event){
        let id = event.target.dataset.id
        this.data.id = id
      }
    })

五、組件規(guī)范

組件名稱為多個(gè)單詞 (必要)

  • 組件名命名規(guī)范

應(yīng)用特定樣式和約定的基礎(chǔ)組件 (也就是展示類的摧玫、無邏輯的或無狀態(tài)的組件) 應(yīng)該全部以一個(gè)特定的前綴開頭耳奕,比如 Base、或 v-诬像。

若組件名稱為多個(gè)單詞名拼接而成屋群,采用 ’ - ’ 連接。組件標(biāo)簽在 page 頁面使用時(shí)推薦使用單閉合標(biāo)簽(此條約束對(duì)于包含有 >slot 的組件無效)

v 來源于法語 單詞 ‘vent’

和父組件緊密耦合的子組件應(yīng)該以父組件名作為前綴命名

組件名應(yīng)該以高級(jí)別的 (通常是一般化描述的) 單詞開頭坏挠,以描述性的修飾詞結(jié)尾

  • 觸發(fā)事件規(guī)范

組件點(diǎn)擊觸發(fā)事件建議用冒號(hào)分隔開

<v-component-tag-name bind:myevent="onMyEvent" />
  • externalClasses 命名規(guī)范

命名格式采用如下形式:v-class-{name}芍躏,name 可自行定義

v-class-icon
  • 組件樣式規(guī)范

團(tuán)隊(duì)所產(chǎn)出的所有組件樣式均應(yīng)采用類的寫法,且命名必須以 v- 開頭降狠,不允許使用內(nèi)聯(lián)樣式以及 id 樣式

.v-container{
  disaplay: flex;
  flex-dirextion: row
}
  • 標(biāo)點(diǎn)規(guī)范

WXML对竣、CSS、JSON 中均應(yīng)使用雙引號(hào)喊熟。
CSS 屬性中冒號(hào)中后面用一個(gè)空格分隔開柏肪。
JS 語句無需以分號(hào)結(jié)束,統(tǒng)一省略分號(hào)
JS 中一致使用反引號(hào) `` 或單引號(hào)’ ’ , 不使用雙引號(hào)芥牌。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末烦味,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谬俄,老刑警劉巖柏靶,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異溃论,居然都是意外死亡屎蜓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門钥勋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炬转,“玉大人,你說我怎么就攤上這事算灸《笈” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵菲驴,是天一觀的道長(zhǎng)荐吵。 經(jīng)常有香客問我,道長(zhǎng)赊瞬,這世上最難降的妖魔是什么先煎? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮巧涧,結(jié)果婚禮上薯蝎,老公的妹妹穿的比我還像新娘。我一直安慰自己褒侧,他們只是感情好良风,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著闷供,像睡著了一般。 火紅的嫁衣襯著肌膚如雪统诺。 梳的紋絲不亂的頭發(fā)上歪脏,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音粮呢,去河邊找鬼婿失。 笑死,一個(gè)胖子當(dāng)著我的面吹牛啄寡,可吹牛的內(nèi)容都是我干的豪硅。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼挺物,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼懒浮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤砚著,失蹤者是張志新(化名)和其女友劉穎次伶,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體稽穆,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冠王,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了舌镶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柱彻。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖餐胀,靈堂內(nèi)的尸體忽然破棺而出哟楷,到底是詐尸還是另有隱情,我是刑警寧澤骂澄,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布吓蘑,位于F島的核電站,受9級(jí)特大地震影響坟冲,放射性物質(zhì)發(fā)生泄漏磨镶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一健提、第九天 我趴在偏房一處隱蔽的房頂上張望琳猫。 院中可真熱鬧,春花似錦私痹、人聲如沸脐嫂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽账千。三九已至,卻和暖如春暗膜,著一層夾襖步出監(jiān)牢的瞬間匀奏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工学搜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留娃善,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓瑞佩,卻偏偏與公主長(zhǎng)得像聚磺,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子炬丸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354