本文介紹開(kāi)發(fā)微信小程序項(xiàng)目中的體系結(jié)構(gòu)和組成部分。
1.0 微信小程序框架體系

微信小程序框架體系由兩部分組成,分別是視圖層和邏輯層。
視圖層由WXML和WXSS組成,類(lèi)似于前端開(kāi)發(fā)中的HTML(標(biāo)簽)和CSS(樣式)。
邏輯層是一套運(yùn)行在本地JavaScript引擎中的JavaScript代碼,負(fù)責(zé)調(diào)用數(shù)據(jù)處理方法來(lái)驅(qū)動(dòng)視圖更新。
微信小程序的整體開(kāi)發(fā)流程非常接近前端HTML + CSS + JavaScript的模式,需要注意的是在小程序開(kāi)發(fā)中沒(méi)有DOM的概念的,本地也沒(méi)有document和window等對(duì)象,更不能使用jQuery等類(lèi)似的框架。
微信小程序中視圖層和邏輯層的交互主要通過(guò)數(shù)據(jù)綁定和事件響應(yīng)來(lái)實(shí)現(xiàn),采用了單向綁定的機(jī)制。
微信小程序的單向綁定機(jī)制
單向綁定機(jī)制需要先將邏輯層和視圖層的數(shù)據(jù)與事件進(jìn)行綁定,當(dāng)頁(yè)面需要修改的時(shí)候,邏輯層只需要調(diào)用特定的setData方法修改已經(jīng)綁定的數(shù)據(jù)即可,這時(shí)候框架會(huì)自動(dòng)觸發(fā)WXML來(lái)重新渲染整個(gè)視圖,當(dāng)框架接收到用戶的交互操作時(shí)會(huì)根據(jù)視圖層綁定的事件執(zhí)行邏輯層中對(duì)應(yīng)的事件函數(shù)以進(jìn)行響應(yīng)。
2.0 微信小程序的結(jié)構(gòu)
微信小程序的開(kāi)發(fā)工具下載并安裝之后,我們可以來(lái)開(kāi)始創(chuàng)建一個(gè)新的項(xiàng)目,如果沒(méi)有appID那么可以選擇使用測(cè)試賬號(hào)。
項(xiàng)目初始化完成后,我們能夠看到下面的界面。

整個(gè)開(kāi)發(fā)界面大概可以分成工具選項(xiàng)區(qū)、模擬器顯示區(qū)、調(diào)試區(qū)、代碼目錄和工作區(qū),其中工作區(qū)、模擬器顯示區(qū)和調(diào)試區(qū)均可以選擇在關(guān)閉在打開(kāi)中進(jìn)行切換,這里我們主要關(guān)注項(xiàng)目初始化后的代碼目錄。
打印項(xiàng)目文件的目錄結(jié)構(gòu)(使用命令行操作,具體請(qǐng)參考網(wǎng)絡(luò)編程系列 Mac系統(tǒng)中Tree的使用)如下。
.
├── app.js
├── app.json
├── app.wxss
├── pages
│ ├── index
│ │ ├── index.js
│ │ ├── index.wxml
│ │ └── index.wxss
│ └── logs
│ ├── logs.js
│ ├── logs.json
│ ├── logs.wxml
│ └── logs.wxss
├── project.config.json
└── utils
└── util.js
在一個(gè)完成的小程序項(xiàng)目中,所有的文件可以劃分為小程序框架主體文件和頁(yè)面文件兩類(lèi)。
① 小程序框架主體文件是系統(tǒng)級(jí)文件,每個(gè)項(xiàng)目中只有一份,他們分別是:
app.js文件 控制小程序整體邏輯,主要用于注冊(cè)小程序全局實(shí)例。
app.json文件 控制小程序整體配置,配置小程序整體設(shè)置。
app.wxss文件 控制小程序整體樣式,對(duì)所有頁(yè)面的布局文件都有效。
project.config.json文件 整個(gè)項(xiàng)目的配置信息
② 頁(yè)面文件 通常由四個(gè)文件組成,分別是.wxml(結(jié)構(gòu)).wxss(樣式).js(邏輯)和.json(配置)??蚣芤?guī)定,同一個(gè)頁(yè)面的這四個(gè)文件必須具有相同的路徑和文件名,在編譯的時(shí)候它們將自動(dòng)關(guān)聯(lián)。在初始化后的項(xiàng)目中,pages文件夾下面擁有兩個(gè)默認(rèn)的頁(yè)面,分別是index頁(yè)面和logs頁(yè)面。