[干貨教程]仿網易雲課堂微信小程序開發實戰經驗


 本篇文章想跟大家分享下:我們公司“湖北誠萬興科技”最近剛幫客戶定制開發、目前已上線的“哎咆課堂”微信小程序的開發經驗分享。首先大概介紹下這個小程序所涉及到的主要技術點:微信登錄、微信支付、微信小程序Flex布局以及微信小程序視頻播放器的使用。

 

首先,任何一個微信小程序開發之前都需要先設計界面效果圖;既然是仿網易雲課堂App,那么界面上都有不少地方是借鑒其布局排版,先一睹為快看下首頁和課程分類界面的效果吧

 

[干貨教程]仿網易雲課堂微信小程序開發實戰經驗

 

界面效果圖確定,下面就開始做程序開發,這也是本文要講的重點,主要經驗總結如下:

 

1.使用"that"

建議在 page{}外面定義一個that變量,然后在onLoad中賦值為this,以后所有的地方,都可以使用that,這樣就避免有些地方,this並不是指向page的上下文對象

//上下文對象
var that;
page({
 onLoad: function (options) {
    // 頁面初始化 options為頁面跳轉所帶來的參數
    that = this;
 }

...
that.setData({
        xxx: xxx,
      })
})

 

 

2.page的生命周期

  • 只有onload中有options參數,可以獲取頁面傳值等等,onload只會執行一次

  • 但是onShow可以每次切換頁面的時候執行,所以,需要每次刷新頁面的數據請求,可以放在onShow中,測試過,性能體驗基本無影響

  • page的生命周期沒有Android那么豐富,頁面之間傳值也有一定的限制。

  • 可以通過普通的url的傳值方式傳值,xxx?key  = value ,但是要注意:我們傳的值其實是相當於字符串和url拼接在一起,請不要直接傳一個對象,因為對象沒有toString方法。

  • 傳遞json對象的步驟為:

    • 把json對象變成字符串,如果本身就是那就直接用,如果是json對象,需要 parseString(json)

    • 和url進行參數拼接?key=value

    • 取得時候在onload的options里面取出,
      onLoad: function (options) {
      var value= options.key
      }

    • 然后JSON.stringify(value)轉為json對象使用

 

3.頁面間跳轉

從主頁跳轉一個新的界面   新界面處理完邏輯 成功與否 結束之后怎么通知 主頁結果?
這種情況,一般是沒有辦法解決的。經過測試,如果你想要從二級非主頁界面直接navigator打開主頁,是不行的,會報錯。
所以,我們采用的策略是:二級界面處理完數據之后,直接返回,然后在主頁界面重新拉取數據。所以會出現,我們的請求接口是在onShow方法里面執行的。因為onload只會執行一次

 

4.wxml頁面布局及綁定

  • text標簽可以使用bindtap

  • 再強調一下   在標簽中使用data-pro_name="value",在對應對象中可以通過e.currentTarget.dataset.pro_name獲得,這種一般使用場景為 你可以給你所點擊或者綁定事件的view設置一個數據,比如你一個picker里面有5個view,就可以綁定每個view不同的值,在觸發事件的時候取到相應的值

  • 如果你想要顯隱view你可以通過wx:if="true/false"來處理,但是這樣的話,如果為false,page不會去渲染這個view,它所在的位置空間也不會預留,假如下面的view就會往上排。如果想要留存它的位置空間,可以修改其style樣式來解決

    style="visibility:{{isShow?'visible':'hidden'}}"
    

     

5.統一公共業務封裝及框架

仿網易雲課堂微信小程序開發實戰經驗

如上圖是“哎咆課堂-微信小程序”公共業務封裝相關類,這樣的好處在於:減少代碼冗余,方便后期維護,比如:

http.js:處理http請求的邏輯封裝

storage.js:小程序中統一的緩存數據讀寫

wx_api.js:微信小程序相關api的邏輯封裝,如:微信登錄、會話有效期驗證、獲取用戶信息等

需要注意的是:js文件要盡量保持業務獨立,不能相互引用依賴!

 

6.其它技巧總結

仿網易雲課堂微信小程序開發實戰經驗

如上圖,即使整個小程序中所有頁面都引用http.js文件,即引用多次,紅色標注的代碼只會執行一次!

 

好了,這篇文章就寫到這兒,希望對您有所幫助!湖北誠萬興科技專注微信小程序、微信公眾號等移動端定制開發,如果想了解更多或業務咨詢、合作,可隨時跟我聯系!(QQ:1030365071,☎:18062239856

 

原文鏈接:http://www.hbcwxkj.com/newsshow/32


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM