微信推出了小程序,周末利用豆瓣電影api實踐了一下,效果如圖。
源碼
源碼地址 github地址,只寫了兩個界面,接口用是豆瓣api,嘗鮮的同學可以參考一下。
MINA
MINA(MINA IS NOT APP)文檔地址 是微信小程序的開發框架,我們的程序也就是建立在該框架上。框架整體上類似Android的結構:
-
App
App()函數類似Android中的Application,可以定義一些全局變量,有自己的生命周期:
App生命周期
每一個新定義的界面需要在App中的json文件中進行注冊,跳轉未經注冊的界面程序會報錯。類似在AndroidManifest中對activity進行注冊。
- Page
page()類似Android 中的Activity,基本一個page對應一個界面
生命周期的函數由框架調用,可以根據生命周期來進行相應的設置。Page中定義一定數量的data,通過setData可以完成界面的重新render,進行異步數據獲取時,在數據完成加載后可以通過該函數進行渲染。
- 文件結構
每個界面由四個文件組成,js wxml wxss json,其中js和wxml是required,wxss和json是optional,各個部分功能如下:
可見wxml不僅用于定義界面,還可以進行數據bind,當在代碼中調用setData()時,bind數據的界面即會重新render,與android中的databinding很類似, 實踐中也很方便。
- 界面跳轉
mina中定義跳轉協議,
wx.navigateTo(OBJECT)
保留當前頁面,跳轉到應用內的某個頁面,使用wx.navigateBack可以返回到原頁面。
wx.redirectTo(OBJECT)
關閉當前頁面,跳轉到應用內的某個頁面。
wx.navigateBack()
關閉當前頁面,回退前一頁面
可根據url進行跳轉,類似網頁url,schema部分為page的本地路徑,schema后可攜帶數據。本部分的實現可參考界面跳轉部分的實現。文檔地址mina導航文檔地址。
- 控件
mina 提供了許多空間,原生開發中的基本控件均覆蓋了,試用了下,很方便,許多原生需要自定義的地方在mina中可以輕松使用。
一些小坑
- 開始時使用的接口時知乎日報的接口,然而mina的image控件可能不支持http的圖片地址,不能正常展示,后改為豆瓣接口。
- 之前微信沒有開放接口,利用weapp-ide-crack 提供的方式進行破解,坑比較多,然后一天之后微信就開放接口,試用還不錯。
總體來說開發體驗還不錯,代碼編輯部分的體驗還有待提高,當然開發js我們也可以有更多的選擇,在開發完成后使用微信開發工具進行代碼調試即可。