亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

詳解 微信小程序開發框架(MINA)

2019-11-19 11:32:39
字體:
來源:轉載
供稿:網友

小程序MINA框架,及優點

MINA框架:

小程序使用的是MINA框架,目的是通過簡單、高效的方式讓開發者可以在微信中開發具有原生App體驗的服務。   

MINA的核心是一個響應的數據綁定系統。

 整個系統分為兩塊:視圖層(view,描述語言wxml和wxss)和邏輯層(App Serice,基于 JavaScript)。這可以讓數據與視圖非常簡單的保持同步。當做數據修改時,只需要在邏輯層改數據,視圖層就會做響應的更新。開發者只需要將頁面路由、方法、生命周期函數注冊進框架,其他的一切復雜的操作都將由框架處理。

小程序優點:

• 方便使用:無需下載,打開即用,用完即走。不占用手機內存,省流量,省安裝時間
• 開發簡單:開發的本質是MVVM風格的Javascript框架上開發的,有前端經驗的程序員可以無縫銜接,無經驗的“小白”也可以快速入門。
• 跨平臺運行:不用再分別開發IOS和Andriod版本,只需要發布微信小程序平臺,所有平臺都可以使用。開發成本低
• 快速分發與迭代:無需關心各種發布渠道,也無須擔心舊版本升級的兼容問題。 

 打開速度比H5快,體驗接近原生APP

小程序開發框架的目標是通過盡可能簡單、高效的方式讓開發者可以在微信中開發具有原生 APP 體驗的服務。

微信團隊為小程序提供的框架命名為MINA。MINA框架通過封裝微信客戶端提供的文件系統、網絡通信、任務管理、數據安全等基礎功能,對上層提供一整套JavaScript API,讓開發者方便的使用微信客戶端提供的各種基礎功能與能力,快速構建應用。

MINA框架

微信小程序的框架示意圖如下所示:

MINA框架主要分為兩大部分:

第一部分頁面視圖層,開發者使用WXML文件來搭建頁面的基本視圖結構(WXML是類似于HTML標簽的語言和一系列基礎組件),使用WXSS文件來控制頁面的表現樣式。

第二部分AppService應用邏輯層,是MINA框架的服務中心,通過微信客戶端啟動異步線程單獨加載運行,頁面渲染所需的數據、頁面交互處理邏輯都在其中實現。MINA框架中的AppService使用JavaScript來編寫交互邏輯、網絡請求、數據處理,但不能使用JavaScript中的DOM操作。小程序中的各個頁面可以通過AppService實現數據管理、網絡通信、生命周期管理和頁面路由。

MINA框架為頁面組件提供了一系列事件監聽相關的屬性(比如bindtap、bindtouchstart等),來與AppService中的事件處理函數綁定在一起,來實現頁面向AppService層同步用戶交互數據。MINA框架同時提供了很多方法將AppService中的數據與頁面進行單向綁定(注意數據的綁定方向是單向的),當AppService中的數據變更時,會主動觸發對應頁面組件的重新渲染。

框架的核心是一個響應式的數據綁定系統,它能讓數據與視圖很簡單的保持同步。只需要在邏輯層修改數據,視圖層就會做相應的更新。示例如下:

<!--頁面視圖層代碼--> <view class="apptitle"> <text class="app-avatar">歡迎使用{{appname}}</text> <button bindtap="changeAppname">更換名稱 </button></view>//AppService應用邏輯層代碼//初始數據page({ data:{  appname:'易投票' }, changeAppname:function(e){  this.setData({  appname:'我的小程序' }) }})

圖1:初始名稱

圖2:點擊按鈕“更換名稱”以后

示例中數據是如何更新的呢?首先,開發者通過框架將AppService應用邏輯層數據中的appname與頁面視圖層名為appname的變更進行了綁定,頁面在剛打開的時候會顯示“歡迎使用 易投票。然后,當點擊按鈕“更換名稱”之后,視圖層會發送changeAppname的tap事件給邏輯層,邏輯層找到事件函數changeAppname。最后,邏輯層changeAppname函數執行了setData操作,將對象appname的值改變為“我的小程序”,因為該對象已經在視圖層綁定,所以視圖層會顯示為圖2的名稱了。

小程序的MINA框架有著接近原生App的運行速度,在框架層面做了大量的優化,在重功能上(page或tab切換、多媒體、網絡連接等)上使用接近于native的組件繼承,對安卓和ios端做出了高度一致的呈現,還有近乎完備的開發、調試工具。

目錄結構

典型的小程序目錄結構非常簡潔,一般一個項目包含兩個目錄(pages和utils)三個文件(app.js、app.json、app.wxss)。pages目錄下包括程序所需的各個頁面,一個頁面對應一個目錄,包含2至4個文件(.js、.wxml、.json及.wxss)。utils目錄則包含一些公共的js代碼文件。當然,我們還可以添加其他的公共目錄,如用來存放本地圖片資源的images目錄。

邏輯層

小程序的邏輯層就是所有.js腳本文件的集合。小程序在邏輯層處理數據并發送至視圖層,同時接受視圖層發回的事件請求。

MINA框架的邏輯層是由JavaScript編寫,在此基礎上,微信團隊做出了一些優化,以便更高效的開發小程序,這些優化包括:

1、增加app方法用來注冊程序,增加page方法用來注冊頁面;

2、提供豐富的API接口;

3、頁面的作用域相對獨立,并擁有了模塊化的能力;

簡單概括,邏輯層就是各個頁面的.js腳本文件。

需要注意的是,小程序的邏輯層由js編寫,但并不是在瀏覽器中運行的,所以JavaScript在Web中的一些能力都不能使用,比如 dom、window等,這也是我們開發過程中要克服的阻礙。

視圖層

對于微信小程序而言,視圖層就是所有的.wxml(WeiXin Markup language)文件與.wxss(WeiXin Style Sheet)文件的集合:.wxml用于描述頁面結構而.wxss用于描述頁面樣式。

視圖層以給定的樣式來展現數據并反饋事件給邏輯層,而數據展現是以組件來進行的。組件(Component)是視圖的基本組成單元。

數據層

數據層包括臨時數據或緩存、文件存儲、網絡存儲與調用。

1、頁面臨時數據或緩存

在頁面page()中,我們要使用setData函數來將數據從邏輯層發送到視圖層,同時改變對應的this.data的值。this在小程序中一般指調用頁面,廣泛情況下指的是包含它的函數作為方法被調用時所屬的對象。直接修改this.data是無效的,無法改變頁面的狀態,還會造成數據的不一致。單次設置的數據有一個大小限制,不能超過1024KB,避免一次性設置過多的數據。

setData()函數的參數接受一個對象。以key,value的形式表示,將this.data中的key對應的值改變為value。key可以非常靈活,包括以數據路徑的形式表示,如array[0].title,并且無需在this.data中預定義。

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

使用微信提供的現成數據API接口,如:

wx.getStorage:獲取本地數據緩存

wx.setStorage:設置本地數據緩存

wx.clearStorage:清理本地數據緩存

3、網絡存儲與調用

上傳或下載文件的API接口,如:

wx.request:發起網絡請求

wx.uploadFile:上傳文件

wx.downloadFile:下載文件

調用URL的API接口如下:

wx.navigateTo:保留當前頁面,跳轉到應用內的某個頁面。但是不能跳到 tabbar 頁面。可返回原頁面。

wx.redirectTo:關閉當前頁面,跳轉到應用內的某個頁面。但是不允許跳轉到 tabbar 頁面。不可返回原頁面。

以上就是微信小程序框架的相關描述,微信團隊一直在不斷的優化框架能力,及時的關注官方提供的小程序開發者文檔,了解小程序的最新能力及優化點。

總結

以上所述是小編給大家介紹的微信小程序開發框架(MINA),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av免费在线播放| 欧美激情在线视频二区| 午夜精品久久久久久久白皮肤| 亚洲理论片在线观看| 久久亚洲一区二区三区四区五区高| 欧美性猛交xxxxx水多| 国产精品日本精品| 国产精品自产拍在线观| 国产欧美一区二区白浆黑人| 日韩在线观看电影| 一本色道久久综合狠狠躁篇的优点| 国产精品女主播视频| 日韩亚洲欧美中文高清在线| 91久久久久久久久久久久久| 亚洲色图欧美制服丝袜另类第一页| 国内精品久久影院| 日本中文字幕久久看| 91社影院在线观看| 久久亚洲欧美日韩精品专区| 成人中文字幕+乱码+中文字幕| 色老头一区二区三区| 九九视频这里只有精品| 国产精品视频公开费视频| 国产精品视频26uuu| 国产成人精品电影久久久| 91日韩在线视频| 国产精品igao视频| 久久视频这里只有精品| 亚洲天堂av高清| 欧美成人免费播放| 国产精品99久久久久久久久久久久| 久久精品国产亚洲精品| 精品国产福利视频| 亚洲国产欧美一区二区三区同亚洲| 伊人亚洲福利一区二区三区| 亚洲欧美日韩成人| 一个色综合导航| 插插插亚洲综合网| 欧美国产高跟鞋裸体秀xxxhd| 精品成人69xx.xyz| 国产精品综合不卡av| 亚洲欧美综合区自拍另类| 亚洲欧美国产精品| 国产精品日韩欧美| 亚洲成人激情在线观看| 国产精品 欧美在线| 日韩中文字幕欧美| 成人久久久久久| 久久久伊人日本| 亚洲成av人影院在线观看| 九九久久精品一区| 国产综合在线观看视频| 成人国产精品日本在线| 日韩中文字幕在线播放| 色偷偷88888欧美精品久久久| 亚洲品质视频自拍网| 亚洲黄色有码视频| 日韩大片在线观看视频| 揄拍成人国产精品视频| 欧美极品少妇xxxxⅹ免费视频| 日韩专区在线播放| 亚洲影视九九影院在线观看| 中文字幕亚洲字幕| 亚洲国产精品久久久久秋霞蜜臀| www.欧美三级电影.com| 欧美日韩美女在线| 亚洲高清一二三区| 久久久久女教师免费一区| 国产精品免费一区| 日本亚洲欧洲色α| 亚洲精品97久久| 欧美网站在线观看| 亚洲性日韩精品一区二区| 亚洲国产精品人久久电影| 亚洲精品白浆高清久久久久久| 97国产真实伦对白精彩视频8| 亚洲精品在线视频| 欧美国产日韩精品| 欧美日韩国产综合视频在线观看中文| 日韩欧美精品在线观看| 午夜精品久久久久久久99热| 2019中文在线观看| 日韩av在线免费观看一区| 亚洲人成网站777色婷婷| 亚洲精品国产精品国产自| 最近2019免费中文字幕视频三| 狠狠躁夜夜躁人人爽超碰91| 国产日韩欧美视频在线| 国产精品入口夜色视频大尺度| 国产精品久久久久久亚洲影视| 国产精品久久一区主播| 91亚洲精品久久久| 亚洲视频自拍偷拍| 精品精品国产国产自在线| 久久久久久九九九| 美女国内精品自产拍在线播放| 理论片在线不卡免费观看| 亚洲视频电影图片偷拍一区| 亚州精品天堂中文字幕| 国内精品久久久久久久| 久久久久久久久久久亚洲| 国产精品扒开腿做爽爽爽男男| 91精品国产高清久久久久久| 日韩精品中文字幕在线观看| 国产精品极品尤物在线观看| 美女精品视频一区| 日韩中文字幕网| 97精品在线观看| 国产欧美日韩视频| 日韩国产激情在线| 亚洲欧美中文字幕| 亚洲欧洲一区二区三区在线观看| 久久露脸国产精品| 日韩av色在线| 久久久久久久久久国产| 日韩有码在线观看| 国产综合视频在线观看| 97精品免费视频| 91在线播放国产| 日韩精品中文字幕久久臀| 欧美精品在线第一页| 久久久久久com| 精品国产一区二区三区久久久狼| 国产成一区二区| 欧美亚洲在线视频| 亚洲男人天堂手机在线| 亚洲图片在线综合| 国产在线观看一区二区三区| 国产成人精品一区二区三区| 国产成人高潮免费观看精品| 国产精品va在线播放我和闺蜜| 欧美日韩亚洲91| 国产精品成人av性教育| 欧美日韩成人在线视频| 亚洲激情视频网| 国产精品草莓在线免费观看| 久久精品免费电影| 国产精品视频久久久| 亚洲午夜国产成人av电影男同| 欧美性生交大片免网| 成人免费高清完整版在线观看| 亚洲综合社区网| 亚洲国产黄色片| 91精品国产高清自在线| 欧美黑人狂野猛交老妇| 国产精品av网站| 国产精品2018| 中文字幕亚洲欧美日韩在线不卡| 国产国产精品人在线视| 亚洲精品小视频| 欧美日韩在线看| 亚洲精品日韩激情在线电影| 日韩影视在线观看| 91精品在线一区| 欧美成人在线免费视频| 欧美日韩在线另类| 国产精品久久久久久五月尺| 久久久久久国产精品美女| 国产成人亚洲综合青青| 亚洲一级片在线看| 亚洲在线第一页| 麻豆国产精品va在线观看不卡| 欧美精品videofree1080p| 国产视频亚洲视频|