微信小程序開發系列一:微信小程序的申請和開發環境的搭建json
這個教程的前兩篇文章,介紹瞭如何用下圖所示的微信開發者工具自動生成一個Hello World的微信小程序,並講解了這個自動生成的微信小程序的視圖開發原理。微信
本文繼續介紹這個微信小程序的控制器index.js的實現, 即MVC設計理念的C-Controller-控制器。不過嚴格意義上說,按照微信小程序官方文檔裏介紹的,微信小程序實際採起的是React和Vue的MVMM的設計思路,提倡把渲染和邏輯分離。簡單來講就是不要再讓 JS 直接操控 DOM,JS只須要管理狀態,而後再經過一種模板語法來描述狀態和界面結構的關係便可。微信開發
下面咱們來逐行分析index.js的代碼:app
//獲取應用實例框架
const app = getApp()函數
getApp是微信框架的方法,返回當前小程序的應用實例。一般狀況下這是微信小程序控制器執行的第一行代碼:工具
這個應用實例的建立是在咱們小程序控制器的訪問範圍以外由微信框架建立的,而後直接在getApp函數裏返回建立好的app實例:學習
爲何這個app實例如此重要,以致於放到控制器的第一行代碼來建立呢?咱們直接在調試器裏輸入app而後回車,能看到這個app對象裏包含了globalData這個屬性和不少有用的方法。
有了app實例後,下一步須要建立的就是Page實例了。這個實例表明當前小程序頁面,經過構造函數Page進行建立。
咱們一樣能夠在微信小程序調試器裏輸入Page而後回車查看這個構造函數的源代碼,
或者直接單步調試進去學習。下圖就是Page構造函數單步執行的狀況,輸入參數e爲一個Json對象,
這個輸入參數e包含的內容有:
咱們控制器index.js裏實現的一個json對象,名稱爲data(做爲當前微信小程序頁面的數據模型,即MVC中的M),以下圖紅色下劃線所示。
咱們控制器index.js裏實現的三個JavaScript函數,用於響應小程序上用戶點擊事件。
總結一下,任何微信小程序,其控制器的邏輯只有兩步:
而這個json對象包含的屬性也只有兩類:
這個系列的下一篇文章會詳細介紹如何用JavaScript函數響應微信小程序的用戶點擊事件。
要獲取更多Jerry的原創技術文章,請關注公衆號"汪子熙"或者掃描下面二維碼: