微信推出了小程序垢啼,周末利用豆瓣電影api實(shí)踐了一下,效果如圖张肾。
源碼
源碼地址 github地址芭析,只寫了兩個界面,接口用是豆瓣api吞瞪,嘗鮮的同學(xué)可以參考一下馁启。
MINA
MINA(MINA IS NOT APP)文檔地址 是微信小程序的開發(fā)框架,我們的程序也就是建立在該框架上芍秆」吒恚框架整體上類似Android的結(jié)構(gòu):
-
App
App()函數(shù)類似Android中的Application,可以定義一些全局變量妖啥,有自己的生命周期:
每一個新定義的界面需要在App中的json文件中進(jìn)行注冊霉颠,跳轉(zhuǎn)未經(jīng)注冊的界面程序會報錯。類似在AndroidManifest中對activity進(jìn)行注冊荆虱。
- Page
page()類似Android 中的Activity蒿偎,基本一個page對應(yīng)一個界面
生命周期的函數(shù)由框架調(diào)用,可以根據(jù)生命周期來進(jìn)行相應(yīng)的設(shè)置怀读。Page中定義一定數(shù)量的data诉位,通過setData可以完成界面的重新render,進(jìn)行異步數(shù)據(jù)獲取時菜枷,在數(shù)據(jù)完成加載后可以通過該函數(shù)進(jìn)行渲染苍糠。
- 文件結(jié)構(gòu)
每個界面由四個文件組成,js wxml wxss json,其中js和wxml是required啤誊,wxss和json是optional椿息,各個部分功能如下:
可見wxml不僅用于定義界面歹袁,還可以進(jìn)行數(shù)據(jù)bind坷衍,當(dāng)在代碼中調(diào)用setData()時寝优,bind數(shù)據(jù)的界面即會重新render,與android中的databinding很類似枫耳, 實(shí)踐中也很方便乏矾。
- 界面跳轉(zhuǎn)
mina中定義跳轉(zhuǎn)協(xié)議,
wx.navigateTo(OBJECT)
保留當(dāng)前頁面迁杨,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個頁面钻心,使用wx.navigateBack可以返回到原頁面。
wx.redirectTo(OBJECT)
關(guān)閉當(dāng)前頁面铅协,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個頁面捷沸。
wx.navigateBack()
關(guān)閉當(dāng)前頁面,回退前一頁面
可根據(jù)url進(jìn)行跳轉(zhuǎn)狐史,類似網(wǎng)頁url痒给,schema部分為page的本地路徑,schema后可攜帶數(shù)據(jù)骏全。本部分的實(shí)現(xiàn)可參考界面跳轉(zhuǎn)部分的實(shí)現(xiàn)苍柏。文檔地址mina導(dǎo)航文檔地址。
- 控件
mina 提供了許多空間姜贡,原生開發(fā)中的基本控件均覆蓋了试吁,試用了下,很方便楼咳,許多原生需要自定義的地方在mina中可以輕松使用熄捍。
一些小坑
- 開始時使用的接口時知乎日報的接口,然而mina的image控件可能不支持http的圖片地址母怜,不能正常展示余耽,后改為豆瓣接口。
- 之前微信沒有開放接口糙申,利用weapp-ide-crack 提供的方式進(jìn)行破解宾添,坑比較多,然后一天之后微信就開放接口柜裸,試用還不錯缕陕。
總體來說開發(fā)體驗(yàn)還不錯,代碼編輯部分的體驗(yàn)還有待提高疙挺,當(dāng)然開發(fā)js我們也可以有更多的選擇扛邑,在開發(fā)完成后使用微信開發(fā)工具進(jìn)行代碼調(diào)試即可。