微信小程序中控制器的初始化邏輯是什么,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

下面介紹微信小程序的控制器index.js的實現(xiàn), 即MVC設計理念的C-Controller-控制器。不過嚴格意義上說,按照微信小程序官方文檔里介紹的,微信小程序?qū)嶋H采取的是React和Vue的MVMM的設計思路,提倡把渲染和邏輯分離。簡單來說就是不要再讓 JS 直接操控 DOM,JS只需要管理狀態(tài),然后再通過一種模板語法來描述狀態(tài)和界面結構的關系即可。
下面我們來逐行分析index.js的代碼:
//獲取應用實例
const app = getApp()
getApp是微信框架的方法,返回當前小程序的應用實例。通常情況下這是微信小程序控制器執(zhí)行的第一行代碼:
這個應用實例的創(chuàng)建是在我們小程序控制器的訪問范圍之外由微信框架創(chuàng)建的,然后直接在getApp函數(shù)里返回創(chuàng)建好的app實例:
為什么這個app實例如此重要,以至于放到控制器的第一行代碼來創(chuàng)建呢?我們直接在調(diào)試器里輸入app然后回車,能看到這個app對象里包含了globalData這個屬性和很多有用的方法。
有了app實例后,下一步需要創(chuàng)建的就是Page實例了。這個實例代表當前小程序頁面,通過構造函數(shù)Page進行創(chuàng)建。
我們同樣可以在微信小程序調(diào)試器里輸入Page然后回車查看這個構造函數(shù)的源代碼,
或者直接單步調(diào)試進去學習。下圖就是Page構造函數(shù)單步執(zhí)行的情況,輸入?yún)?shù)e為一個Json對象,
這個輸入?yún)?shù)e包含的內(nèi)容有:
我們控制器index.js里實現(xiàn)的一個json對象,名稱為data(作為當前微信小程序頁面的數(shù)據(jù)模型,即MVC中的M),如下圖紅色下劃線所示。
我們控制器index.js里實現(xiàn)的三個JavaScript函數(shù),用于響應小程序上用戶點擊事件。
總結一下,任何微信小程序,其控制器的邏輯只有兩步:
調(diào)用微信小程序框架提供的標準函數(shù)getApp, 獲得一個小程序?qū)嵗?/p>
調(diào)用微信小程序頁面構造函數(shù)Page,初始化頁面實例。我們在控制器內(nèi)主要的編碼邏輯,主要集中在傳入這個Page構造函數(shù)的輸入?yún)?shù),即一個json對象。
而這個json對象包含的屬性也只有兩類:
第一類是另一個json對象,作為MVC中的M,即數(shù)據(jù)模型。這個json數(shù)據(jù)模型的字段被綁定到微信小程序視圖的某個UI元素,比如Text, Image的對應屬性,這樣就自動把數(shù)據(jù)模型里的字段顯示到UI上了。
第二類是我們自己開發(fā)的JavaScript函數(shù),用于響應微信小程序的用戶輸入,比如視圖上的按鈕點擊事件等等。
看完上述內(nèi)容,你們掌握微信小程序中控制器的初始化邏輯是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道,感謝各位的閱讀!
當前題目:微信小程序中控制器的初始化邏輯是什么-創(chuàng)新互聯(lián)
文章來源:http://www.chinadenli.net/article44/dcdiee.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、網(wǎng)站改版、移動網(wǎng)站建設、搜索引擎優(yōu)化、響應式網(wǎng)站、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容