一個(gè)清晰的項(xiàng)目結(jié)構(gòu)有助于我們快速毁欣、高效的開發(fā)項(xiàng)目昭躺,也有助于團(tuán)隊(duì)快速了解項(xiàng)目则果。這是我寫小程序的一些規(guī)范總結(jié)幔翰。
一、 項(xiàng)目結(jié)構(gòu)
.
├── app.js
├── app.json
├── app.wxss
├── assets (項(xiàng)目資源文件存放文件夾)
│ └── images(項(xiàng)目本地圖片存放文件夾)
│
├── components (自定義組件存放文件夾)
│ ├── custom-button
│ ├── ...
│ └── custom-navigation
│
├── pages (頁(yè)面文件存放文件夾)
│ ├── home
│ ├── ...
│ └── mine
│
├── requests (項(xiàng)目所有網(wǎng)絡(luò)請(qǐng)求存放文件夾)
│ └── index.js
│
├── statics (項(xiàng)目通用文件夾短条,方便直接在多個(gè)新的項(xiàng)目中使用)
│ ├── config (項(xiàng)目配置)
│ │ └── index.js
│ │
│ ├── crypto (項(xiàng)目AES加解密和MD5加密)
│ │ ├── AES.js (外部使用的加解密)
│ │ └── crypto.js
│ │
│ ├── fonts (項(xiàng)目引入的第三方字體)
│ │ └── font.wxss
│ │
│ ├── judgement (封裝常用判斷导匣,手機(jī)號(hào)、姓名茸时、身份證...)
│ │ └── index.js
│ │
│ ├── request (封裝常用判斷贡定,手機(jī)號(hào)、姓名可都、身份證...)
│ │ ├── index.js (主要網(wǎng)絡(luò)請(qǐng)求封裝)
│ │ ├── params.js(網(wǎng)絡(luò)請(qǐng)求參數(shù)封裝)
│ │ └── wxLogin.js (微信登錄相關(guān))
│ │
│ ├── router(常用的頁(yè)面跳轉(zhuǎn))
│ │ └── index.js
│ │
│ ├── storage (本地?cái)?shù)據(jù)緩存的key和相關(guān)的方法)
│ │ └── index.js
│ │
│ ├── toast(網(wǎng)絡(luò)請(qǐng)求提示和彈窗提示文字等方法)
│ │ └── index.js
│ │
│ ├── utils(常用的工具類方法)
│ │ └── util.js
│ │
│ └── wxs (小程序腳本語(yǔ)言文件缓待,這里主要處理了價(jià)格)
│ └── price.wxs
│
└── utils (系統(tǒng)默認(rèn)創(chuàng)建的當(dāng)前項(xiàng)目工具類文件)
└── util.js
二、 代碼規(guī)范(重點(diǎn))
-
自定義組件(components)
- 文件夾名字統(tǒng)一用
小寫字母
; - 文件夾多個(gè)單詞之間用
“-”
來連接渠牲,`如:custom-navigation; -
文件名稱與文件夾名稱一致
旋炒,如:custom-navigation.js; - 多個(gè)地方使用可以考慮直接配置到
app.json
中的“usingComponents”
里面。`
-
頁(yè)面文件(pages)
- 文件夾第一個(gè)單詞使用
小寫
签杈,如:home; - 多個(gè)單詞使用
駝峰命名
瘫镇,如:orderDetail; - 文件名稱統(tǒng)一使用
index.js
鼎兽。
-
工具類文件和其他(statics或utils)
- 文件夾第一個(gè)單詞使用
小寫
,如:home; - 多個(gè)單詞使用
駝峰命名
铣除,`如:orderDetail; - 文件名稱統(tǒng)一使用
index.js
谚咬。
-
CSS規(guī)范
- css布局統(tǒng)一使用
flex布局
- 尺寸單位統(tǒng)一使用
rpx
- 命名采用
“-”(雙擊不可復(fù)制)
或者“_”(雙擊直接復(fù)制)
來連接都可以。如: header-wraper, header_wraper.
-
JS規(guī)范
- js 的命名采用
駝峰命名
法; - js語(yǔ)句
無(wú)需寫 尚粘;
來結(jié)尾择卦; - js中一致使用
單引號(hào)''
或者反引號(hào)``
,不是使用 雙引號(hào)""; - 在
wxml郎嫁、css秉继、json 中均使用雙引號(hào) ""
; - 點(diǎn)擊事件名稱
on+事件名稱或者業(yè)務(wù)名稱
泽铛,能有知名思議的效果尚辑。如:onSelectTitle()
-
函數(shù)
- 在
pages
的頁(yè)面文件中,系統(tǒng)方法仍使用默認(rèn)的方式厚宰,如: onLoad: function () {},
自定義的方法統(tǒng)一使用如:函數(shù)名() {}
- 其他js文件使用
const 函數(shù)名 = () => {} (不建議使用到pages的頁(yè)面文件中避免this指向問題),
或者函數(shù)名(){}
- 異步回調(diào)函數(shù) 統(tǒng)一使用
Promise
-
文件的導(dǎo)入和導(dǎo)出
1.文件導(dǎo)入:
1)使用微信引入模塊的方式腌巾,即 require(path) 相當(dāng)于整個(gè)模塊導(dǎo)入
;
2)ES6方式導(dǎo)入,import xx from path 按需導(dǎo)入
铲觉。
- 文件導(dǎo)出
1)使用module.exports = {}
方式模塊導(dǎo)出;
2)使用export單個(gè)導(dǎo)出
或者export default {}導(dǎo)出多個(gè)