亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

微信小程序開發(fā),如何優(yōu)雅地兼容

stonezhu / 2828人閱讀

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

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

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

問題

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

代碼難以閱讀

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

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

思考

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

兼容的細節(jié)不必暴露

兼容的方案應(yīng)該統(tǒng)一

兼容的方案可方便地變動

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

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

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

兼容處理多了之后我們會發(fā)現(xiàn),對兼容所做的處理無非兩方面:

支持該方法時,直接使用對應(yīng)方法

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

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

減少重復(fù)代碼

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

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

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

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

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

wx.showToast 偽造了一個 showLoading。

3.文件組織

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/54672.html

相關(guān)文章

  • 微信小程開發(fā)如何優(yōu)雅兼容

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

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

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

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

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

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

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

    IntMain 評論0 收藏0

發(fā)表評論

0條評論

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