国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

微信小程序開發,如何優雅地兼容

stonezhu / 2722人閱讀

摘要:小程序的功能不斷的增加,但是舊版本的微信客戶端并不支持新功能,所以在使用這些新能力的時候需要做兼容。關于單個如何兼容,微信官方提供了兼容文檔,因此我們這里不再贅述。下面主要討論在整個項目如何優雅地處理兼容問題。

小程序的功能不斷的增加,但是舊版本的微信客戶端并不支持新功能,所以在使用這些新能力的時候需要做兼容。

關于單個 API 如何兼容,微信官方提供了兼容文檔,因此我們這里不再贅述。
下面主要討論在整個項目如何優雅地處理兼容問題

問題

如果在每處需要兼容的地方都寫上一堆兼容相關的代碼,隨著代碼量增加,會出現以下問題:

代碼難以閱讀

兼容方案有變動時,需要改動多處

隨著時間推移,你的代碼才是最需要并且是最難兼容的

思考

最理想的情況是不需要任何兼容處理,因此可以反推出兼容性處理的代碼并不是代碼正常流程中的一部分,基于此:

兼容的細節不必暴露

兼容的方案應該統一

兼容的方案可方便地變動

解決方案 1.將兼容方案隱藏,對外提供接口即可

比如 wx.showLoading 是在 1.1.0 版本之后才提供的,對于之前的版本需要兼容。
我們選擇將其放在 show-loading.js 中,內部進行兼容性相關處理,并對外提供 showLoading 方法。
這樣調用者只需調用 showLoading 方法即可,不用考慮兼容性的問題,而且如果兼容的方式有變動,只需改動 show-loading.js 一處即可。

2.兼容的處理還有共性可以抽象

兼容處理多了之后我們會發現,對兼容所做的處理無非兩方面:

支持該方法時,直接使用對應方法

不支持該方法時,做一些兼容處理

因此這種模式我們又可以抽離出來,這樣做當然有一些好處:

減少重復代碼

做一些共性的處理時,我們又只用改動一處(比如當不兼容官方 API 時加上對應統計,用于分析當前應用跨版本的情況)

比如我們抽離出這樣一個簡單的 compatible.js 用于處理兼容時的共性問題:

之前的 showLoading.js 我們可以這樣寫:

簡單吧 :),這種寫法的意思是兼容時正常展示 loading 即可,不兼容時則不展示。

當然可能有完美主義者會覺得『怎么能不展示呢?我就是要展示!』 那么我們可以這樣寫:

wx.showToast 偽造了一個 showLoading

3.文件組織

兼容性的文件可能會越來越多,對于我這種有收拾的人,看到所有東西散亂地扔在一個抽屜里肯定是不能忍的...
因此我們可以多用幾個小盒子把它們分門別類地裝起來。小盒子怎么選呢?其實官方已經給出了答案,官方 API 是按照不同的功用分組的,因此我們拿分組當『盒子』即可。
最終的文件組織像這樣:

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/54672.html

相關文章

  • 微信小程開發如何優雅兼容

    摘要:小程序的功能不斷的增加,但是舊版本的微信客戶端并不支持新功能,所以在使用這些新能力的時候需要做兼容。關于單個如何兼容,微信官方提供了兼容文檔,因此我們這里不再贅述。下面主要討論在整個項目如何優雅地處理兼容問題。 小程序的功能不斷的增加,但是舊版本的微信客戶端并不支持新功能,所以在使用這些新能力的時候需要做兼容。 showImg(https://segmentfault.com/img/...

    RdouTyping 評論0 收藏0
  • 微信小程資源匯總

    awesome-github-wechat-weapp 是由OpenDigg整理并維護的微信小程序開源項目庫集合。我們會定期同步上的項目到這里,也歡迎各位 UI組件開發框架實用庫開發工具服務端項目實例Demo UI組件 weui-wxss ★1873 - 同微信原生視覺體驗一致的基礎樣式庫zanui-weapp ★794 - 好用易擴展的小程序 UI 庫wx-charts ★449 - 微信小程...

    Olivia 評論0 收藏0
  • 微信小程開發庫grace vs wepy

    摘要:和都是輔助小程序開發的開源庫,本文對兩者做個對比。微信的這種限制決定了小程序一般只是用于實現核心功能,不會用作復雜功能。在筆者了解的很多小程序,甚至大都是用原生開發的。 grace和wepy都是輔助小程序開發的開源庫,本文對兩者做個對比。 注:本文是作者本人的一些拙見,純粹的技術討論,不想引起技術信仰之爭,歡迎積極、正向的討論及建議。 如果你還不了解Grace, 請參考:微信小程序開發...

    james 評論0 收藏0
  • 你不知道的h5

    摘要:目前,常用的模塊規范主要有兩種和。攔截全局請求一直接引入腳本攔截需要的回調或函數。深刻知道一個良好的命名規范的重要性,同時在項目中也會遇到一些命名的瓶頸。 基于 Three.js 的超快的 3D 開發框架:Whitestorm.js Whitestorm.js 是一款基于 Three.js 超快的 Web 應用 3D 開發框架。它為普通的 Three.js 任務提供封裝、使搭建環境、...

    IntMain 評論0 收藏0

發表評論

0條評論

stonezhu

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<