小程序基礎(chǔ)[02]-小程序框架的文件體系

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

1.0 微信小程序框架體系

微信小程序框架體系由兩部分組成,分別是視圖層和邏輯層。

視圖層由WXMLWXSS組成,類(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è)面。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,323評(píng)論 25 708
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評(píng)論 19 139
  • 今天參加一個(gè)蔥油餅爬梯, 傳說(shuō)中的超級(jí)蔥油餅終于變成了現(xiàn)實(shí)。一桌農(nóng)家菜, 一鍋紅棗小米粥, 普遍反應(yīng)勝過(guò)龍蝦大餐。...
    XinSuting閱讀 287評(píng)論 0 0
  • 銷(xiāo)售之所以要預(yù)熱: 1.一個(gè)事物發(fā)展的規(guī)律,好的開(kāi)場(chǎng)對(duì)后面的銷(xiāo)售起到非常重要的鋪墊,讓雙方都了解熟悉建立信任基礎(chǔ)。...
    像天空的鴿子閱讀 453評(píng)論 0 0
  • 從周二晚上練完瑜伽,就聯(lián)系不上好友李了,發(fā)微信不回,語(yǔ)音不接,電話也不接,這不是她的風(fēng)格呀!我很擔(dān)心,準(zhǔn)備打電話給...
    lW平淡是真閱讀 270評(píng)論 2 1

友情鏈接更多精彩內(nèi)容