小程序框架將整個(gè)系統(tǒng)劃分為視圖層和邏輯層疤苹,視圖層是由框架設(shè)計(jì)的標(biāo)簽語(yǔ)言WXML(WeiXin Markup Language)和用于描述WXML組件樣式的 WXSS(WeiXin Style Sheets)組成,它們的關(guān)系就像 HTML 和 CSS 的關(guān)系叙身;邏輯層是一套運(yùn)行在本地 JavaScript引擎的 JavaScript 代碼,在此基礎(chǔ)上框架實(shí)現(xiàn)了一套模塊化機(jī)制志鹃,讓每個(gè) JS 文件有獨(dú)立的作用域和模塊化能力夭问,這套模塊化機(jī)制遵循 CommonJS 規(guī)范。
小程序中視圖層和邏輯層的交互是通過(guò)數(shù)據(jù)綁定和事件響應(yīng)實(shí)現(xiàn)的曹铃,這是一種單向綁定的機(jī)制缰趋。這套機(jī)制需要首先將邏輯層和視圖層的數(shù)據(jù)和事件進(jìn)行綁定,當(dāng)需要修改頁(yè)面時(shí)铛只,邏輯層只需要調(diào)用特定的 setData方法修改已綁定的數(shù)據(jù)埠胖,這時(shí)框架會(huì)自動(dòng)觸發(fā) WXML重新渲染糠溜,達(dá)到邏輯層對(duì)視圖的控制淳玩;當(dāng)框架接收到用戶交互操作時(shí),會(huì)根據(jù)視圖層綁定的事件非竿,執(zhí)行邏輯層中對(duì)應(yīng)的事件函數(shù)蜕着,達(dá)到邏輯層對(duì)視圖層的響應(yīng)。
例如:
app.json
index.wxml
index.js
頁(yè)面中的數(shù)字隨著點(diǎn)擊次數(shù)增加红柱,這種視圖層和邏輯層之間相互通信的機(jī)制便是小程序的數(shù)據(jù)綁定和事件響應(yīng)系統(tǒng)承匣。