初識小程序-MINA框架

MINA框架

小程序提供的開發(fā)框架為MINA框架贯城,它類似于淘寶Weex、Vue框架。MINA框架經(jīng)過大量底層的優(yōu)化設(shè)計,有著接近原生App的運行速度茸苇,對Android端和iOS端做到了高度一致的呈現(xiàn)传藏,具有完備的開發(fā)和調(diào)試工具。

MINA框架通過封裝微信客戶端提供的文件系統(tǒng)试幽、網(wǎng)絡(luò)通信、任務(wù)管理霍狰、數(shù)據(jù)安全等基礎(chǔ)功能抡草,對上層提供一整套JavaScript API,讓開發(fā)者能夠非常方便地使用微信客戶端提供的各種基礎(chǔ)功能與能力康震,快速構(gòu)建一個應(yīng)用。

小程序MINA框架示意圖:

MINA.png

通過框架圖我們可以看到兩大部分:
■在頁面視圖層,wxml是MINA提供的一套類似于HTML標(biāo)簽的語言以及一系列基礎(chǔ)組件。開發(fā)者使用wxml文件來搭建頁面的基本視圖結(jié)構(gòu)芦岂,使用wxss文件來控制頁面的展現(xiàn)樣式。
■AppService應(yīng)用邏輯層是MINA的服務(wù)中心决左,由微信客戶端啟用異步線程單獨加載運行。頁面渲染所需的數(shù)據(jù)婴渡、頁面交互處理邏輯都在AppService中實現(xiàn)幻锁。MINA框架中的AppService使用JavaScript來編寫交互邏輯、網(wǎng)絡(luò)請求柠并、數(shù)據(jù)處理岭接,但不能使用JavaScript中的DOM操作。小程序中的各個頁面可以通過AppService實現(xiàn)數(shù)據(jù)管理臼予、網(wǎng)絡(luò)通信鸣戴、應(yīng)用生命周期管理和頁面路由。

MINA框架為頁面組件提供了bindtap粘拾、bindtouchstart等事件監(jiān)聽相關(guān)的屬性窄锅,來與AppService中的事件處理函數(shù)綁定在一起,實現(xiàn)頁面向AppService層同步用戶交互數(shù)據(jù)缰雇。MINA框架同時提供了很多方法將AppService中的數(shù)據(jù)與頁面進(jìn)行單向綁定入偷,當(dāng)AppService中的數(shù)據(jù)變更時,會主動觸發(fā)對應(yīng)頁面組件的重新渲染寓涨。MINA使用Virtual-DOM技術(shù)盯串,加快了頁面的渲染效率。

框架的核心是一個響應(yīng)的數(shù)據(jù)綁定系統(tǒng)戒良,它讓數(shù)據(jù)與視圖非常簡單地保持同步体捏。當(dāng)做數(shù)據(jù)修改的時候,只需要在邏輯層修改數(shù)據(jù)糯崎,視圖層就會做相應(yīng)的更新几缭。

結(jié)構(gòu)層

邏輯層

微信小程序在邏輯層將數(shù)據(jù)進(jìn)行處理后發(fā)送給視圖層,同時接受視圖層的事件反饋沃呢。

視圖層

框架的視圖層由WXML(WeiXin Markup language)與WXSS(WeiXin Style Sheet)編寫年栓,由組件來進(jìn)行展示。于微信小程序而言薄霜,視圖層就是所有.wxml文件與.wxss文件的集合某抓。

數(shù)據(jù)層

數(shù)據(jù)層包括臨時數(shù)據(jù)或緩存、文件存儲惰瓜、網(wǎng)絡(luò)存儲與調(diào)用否副。

1.頁面臨時數(shù)據(jù)或緩存

在Page()中,我們要使用setData函數(shù)來將數(shù)據(jù)從邏輯層發(fā)送到視圖層崎坊,同時改變對應(yīng)的this.data的值备禀。

2.文件存儲(本地存儲)

使用數(shù)據(jù)API接口,如下所示:
■wx.getStorage:獲取本地數(shù)據(jù)緩存。
■wx.setStorage:設(shè)置本地數(shù)據(jù)緩存曲尸。
■wx.clearStorage:清理本地數(shù)據(jù)緩存赋续。

3.網(wǎng)絡(luò)存儲或調(diào)用

上傳或下載文件API接口,如下:
■wx.request:發(fā)起網(wǎng)絡(luò)請求另患。
■wx.uploadFile:上傳文件纽乱。
■wx.downloadFile:下載文件。

4.cookie

小程序中是沒有cookie的柴淘,為了兼容目前大部分Web App的登錄管理時使用cookie的迫淹,小程序在請求發(fā)送時,客戶端可以動態(tài)地給請求設(shè)置Header發(fā)送報文的cookie为严。實現(xiàn)代碼類似于如下代碼:

 wx.request({
   header: { cookie:‘xxx'}, 
   url:"xxx", data:{},
   success:function(res){},
   fail:function(res){}
 });
注意:

1).cookie本身不能在客戶端進(jìn)行讀寫敛熬。
2).storage對每個小程序的大小是5M,支持同步和異步第股。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末应民,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子夕吻,更是在濱河造成了極大的恐慌诲锹,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涉馅,死亡現(xiàn)場離奇詭異归园,居然都是意外死亡,警方通過查閱死者的電腦和手機稚矿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進(jìn)店門庸诱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人晤揣,你說我怎么就攤上這事桥爽。” “怎么了昧识?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵钠四,是天一觀的道長。 經(jīng)常有香客問我跪楞,道長缀去,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任甸祭,我火速辦了婚禮朵耕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘淋叶。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布煞檩。 她就那樣靜靜地躺著处嫌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪斟湃。 梳的紋絲不亂的頭發(fā)上熏迹,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天,我揣著相機與錄音凝赛,去河邊找鬼注暗。 笑死,一個胖子當(dāng)著我的面吹牛墓猎,可吹牛的內(nèi)容都是我干的捆昏。 我是一名探鬼主播,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼毙沾,長吁一口氣:“原來是場噩夢啊……” “哼骗卜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起左胞,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤寇仓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后烤宙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體遍烦,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年躺枕,在試婚紗的時候發(fā)現(xiàn)自己被綠了服猪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡屯远,死狀恐怖蔓姚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情慨丐,我是刑警寧澤坡脐,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站房揭,受9級特大地震影響备闲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜捅暴,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一恬砂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蓬痒,春花似錦泻骤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽演痒。三九已至,卻和暖如春趋惨,著一層夾襖步出監(jiān)牢的瞬間鸟顺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工器虾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留讯嫂,地道東北人。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓兆沙,卻偏偏與公主長得像欧芽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子挤悉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,654評論 2 354

推薦閱讀更多精彩內(nèi)容