小程序、快應用 框架

運行平臺

小程序平臺:百度智能小程序、支付寶小程序、微信小程序、QQ小程序、字節跳動小程序

快應用平臺:努比亞手機、聯想手機、一加手機、小米手機、vivo手機、華爲手機、OPPO手機、金立手機、魅族手機、中興手機

跨平臺框架

omix:是騰訊omi項目的子項目,是騰訊webstore項目的進化版,是原生微信小程序項目的狀態管理組件、響應式組件

騰訊 WePY(類vue):支持輸出 微信小程序
騰訊 kbone(純vue,模擬瀏覽器環境):支持輸出 微信小程序、H5

美團點評 mpvue(純vue):支持輸出 微信小程序、H5

滴滴 MPX(微信小程序原生語法增強爲類vue):支持輸出 微信/QQ/支付寶/百度/頭條小程序

滴滴 Chameleon(CML,類vue):支持輸出 微信/QQ/支付寶/百度/頭條小程序、快應用、H5、Weex

DCLOUD uni-app(純vue):支持輸出 微信/QQ/支付寶/百度/頭條小程序、快應用、H5、Weex

 

京東 Taro(純react):支持輸出 微信/QQ/支付寶/百度/頭條小程序、快應用、H5、React Native

阿里巴巴 Rax(類React):支持輸出 支付寶/微信小程序、H5(PWA)、Weex、Flutter

小程序框架指標

跨端支持度:小程序、H5、Native App、快應用

學習成本:是否獨立DSL(Domain Specific Language,領域特定語言)、目前掌握的是vue還是react

組件豐富度:官方(內置)組件庫、第三方組件庫、是否支持原生(H5、小程序)組件庫

坑數:跨端數越多,bug就會越多,性能就會越差,使用各端的原生能力就越難;增強型框架跨平臺

熱度:社區活躍度、更新頻率

微信小程序組件庫

有贊-Vant Weapp、微信-weui-miniprogram、TalkingData - iView Weapp、蘑菇街-MinUI、Wux Weapp(個人項目,組件最多)

京東-TaroUI(基於Taro框架)、ColorUI(WXSS框架)、騰訊-WeUI-wxss(WXSS框架)

轉譯型 與 增強型

轉譯型框架(MPX以外):將其他的語法規範轉譯爲小程序語法規範

轉譯型框架的缺點:不支持源框架的一些語法特性,不支持原生組件庫(H5、小程序)

增強型框架(MPX):基於某一小程序語法規範,使用Vue中優秀的語法特性進行增強;但在跨平臺編譯時,仍然是轉譯

增強型框架的優點:可以從原生小程序項目漸進遷移、一定程度上支持原生小程序組件庫

增強型框架的缺點:由於是基於某一小程序的語法規範,跨平臺編譯時,更難抹平平臺差異;一旦抹平了,也就有了轉譯型框架的缺點

總結:不跨平臺編譯時,用MPX作爲語法增強,是可行的。需要跨平臺編譯時,會出現很多不支持轉譯的語法特性

MPX跨平臺編譯

思路:新平臺不支持的內容,要麼抹平 要麼 再編譯前進行差異化

抹平案例:微信小程序代碼 編譯成 頭條小程序
問題:vant-weapp組件庫用到了<wxs>,不能跨平臺編譯成 頭條小程序
解決思路:去掉vant-weapp裏的<wxs>
步驟:
1、把 /wxs 目錄下的 wxs文件 改爲 .js,在wxss中引入
2、把這些文件裏的wxs語法改爲js語法,例如 模塊導入導出語法、getRegExp()改爲new RegExp()、判斷是否是數組array.constructor === 'Array' 改爲  Array.isArray(array)
3、template裏調用方法 {{f(x)}} 改用 computed 方法實現
4、template裏wx:for 內 調用方法 {{f(x)}} 得想辦法展開成表達式 或者 數據預處理

kbone

不能用現成的第三方vue組件庫;使用了小程序原生組件,則web端用不了;使用kbone-ui,才能兩端通用

啓動時打開指定路徑:每個頁面要設置成單獨的page,而不能是一個單頁多個路由;打開新頁要用window.open(route); 否則會出現頁面空白、沒有返回按鈕、沒有Home按鈕等問題

從外部(公衆號菜單、分享等)打開指定路徑要用 pages/xx/index?type=share&targeturl=${encodeURIComponent('https://origin.com/xx')}

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章