Taro 1.1 全面支持微信

Taro 1.1 全面支持微信/百度/支付寶小程序了!

作者|凹凸實驗室

上個月,Taro 正式發佈了 1.0 版本。

作為一個多端統一開發框架,Taro 1.0 版本為廣大開發者帶來了許多激動人心的特性,幫助開發者們更方便快捷地開發多端應用。

前進的腳步沒有停下,歷時一個多月,Taro 1.1 版本正式來襲!

從 1.0 到 1.1,期間產生了 500 餘次 Commit,發佈了 23 個版本,Taro 一直保持高速的迭代頻率,只為不斷打磨,為它注入更多優秀的特性,讓更多開發者受益。

Taro 1.1 正式來襲

更豐富的平臺轉換支持

自從微信小程序誕生以來,小程序的優勢大家有目共睹,各大互聯網廠商開始摩拳擦掌,紛紛佈局小程序領域,其中勢頭最勁的當屬百度智能小程序和支付寶小程序。對於前端而言,既是機遇,因為平臺愈多,帶來的機會愈多;也是挑戰,因為不同的平臺總會各有差異,為每個平臺維護一份代碼,成本顯然太高。

為了降低多端應用的開發成本,在已全面支持微信小程序的基礎上,Taro 在 1.1 版本中加入了對百度智能小程序和支付寶小程序的支持。

升級到 1.1 版本後,即可獲得將現有項目轉換成百度智能小程序的能力。

使用如下命令進行百度智能小程序端編譯預覽及打包:

# npm/>$ npm run dev:swan
$ npm run build:swan
# 僅限全局安裝
$ taro build --type swan --watch
$ taro build --type swan
# npx 用戶也可以使用
$ npx taro build --type swan --watch
$ npx taro build --type swan

選擇百度智能小程序模式,需要你下載並打開百度開發者工具(https://smartprogram.baidu.com/docs/develop/devtools/show_sur/),然後在項目編譯完後選擇項目根目錄下 dist 目錄進行預覽。

目前已有使用 Taro 開發的首款百度智能小程序 “京東好物街” 正式上線,可以使用百度 APP,掃描以下二維碼進行體驗:



支持支付寶小程序

支付寶小程序的轉換方式與百度智能小程序一致。

你可以使用如下命令進行百度智能小程序端編譯預覽及打包:

# npm/>$ npm run dev:alipay
$ npm run build:alipay
# 僅限全局安裝
$ taro build --type alipay --watch
$ taro build --type alipay
# npx 用戶也可以使用
$ npx taro build --type alipay --watch
$ npx taro build --type alipay

選擇支付寶小程序模式,需要你下載並打開支付寶小程序開發者工具(https://docs.alipay.com/mini/developer/getting-started/),然後在項目編譯完後選擇項目根目錄下 dist 目錄進行預覽。

新增平臺標識

在加入 百度智能小程序 和 支付寶小程序 支持後,目前 Taro 已經提供了對 5 個平臺的支持,分別是 微信 / 百度 / 支付寶 /React Native/H5,為了方便開發者書寫平臺差異化代碼,Taro 為每個平臺提供了平臺標識,並可以通過 process.env.TARO_ENV 來獲得,其取值分別如下:

  • weapp,代表微信小程序
  • h5,代表 H5
  • rn,代表 React Native
  • swan,代表百度智能小程序,1.1 版本新增
  • alipay,代表支付寶小程序,1.1 版本新增

開放多端 UI 庫打包能力

在 1.0 版本中,Taro 的 build 命令新增了 --ui 參數,來將按照一定規則組織的代碼打包成可以在 Taro 中使用的多端 UI 庫。 並且,基於這一功能,Taro 推出了首個可以跨多端使用的多端 UI 庫 Taro UI。

為了完善 Taro 生態,擴展 Taro 社區,在 1.1 版本中開放了多端 UI 庫的打包能力,並提供了詳細的開發指南。

同時 Taro 也提供了官方的多端 UI 庫示例,這是一個完整規範的 UI 庫開發例子,包含必要的項目改造以及測試套件,基於這個示例,開發者可以快速地開發一個多端 UI 庫項目。

還有更多

在 1.0 版本中,Taro 提供了對 微信小程序、H5 以及 React Native 的支持,而 1.1 版本,在原有支持的基礎之上,對每一個平臺進行不斷完善,讓其更加豐富完整。

  • F 調用 this.setState 時,JSON Diff 算法 Bug 修復
  • F 修復 this.setState 回調裡再調用 this.setState 的 Bug
  • A 新增 componentWillPreload 生命週期,用於數據預加載
  • A 支持在同一作用域對 JSX 賦值
  • F 多層 Map 循環嵌套包含條件判斷時問題修復
  • F 中文字符被編譯成 unicode 碼問題修復
  • F 三元表達式解析問題修復
  • A 提升字符串模板的性能

H5

  • A H5 支持分包配置
  • F 修復 H5 後臺頁面依然執行生命週期的問題
  • F 修復 PUT 、DELETE 等請求 body 為對象時無法發送 body 的問題
  • A 增加 setTabBarStyle 與 setTabBarItem API
  • A 增加 arrayBufferToBase64 與 base64ToArrayBuffer API
  • A 編譯打包支持將公共 npm 包抽離成 lib 庫

React Native

  • A 支持 TypeScript
  • F 修復項目初始化後 less 編譯報錯
  • A 添加 config.window.navigationStyle 配置
  • A 添加 showNavigationBarLoading 與 hideNavigationBarLoading API
  • A 增加 arrayBufferToBase64 與 base64ToArrayBuffer API
  • F 修復樣式支持警告
  • A watch 模式時代碼按需編譯
  • F 修復同一文件夾下多個 JS 文件樣式引用錯誤
  • F app.json 的 expo 配置改為可覆蓋
  • A 支持 Taro.pxTransform
  • F iconPath 和 selectedPath 的為同一個路徑導致的重複引用的報錯
  • A 在 config 中添加 rn 的 expo 配置
  • A 支持 deviceRatio 自定義

更完整的功能迭代記錄請參閱:

https://github.com/NervJS/taro/blob/master/CHANGELOG.md

未來規劃

Taro 將會繼續保持高效迭代,以滿足日益增長的多端開發需求。

目前已經確認的開發計劃可以參見 Taro 版本開發計劃:

https://github.com/NervJS/taro/blob/master/PLANS.md

小程序轉 Taro 代碼開啟內測

值得注意的是,激動人心的小程序轉 Taro 代碼功能已經開發完成,進入內測階段,可以通過如下命令安裝到 canary 版本,進行體驗:

$ npm i -g @tarojs/cli@canary

歡迎針對這一功能,提供寶貴意見,意見入口請戳:

https://github.com/NervJS/taro/issues/955

同時,為了幫助 Taro 更好地成長,讓 Taro 更好地回饋所有開發者,歡迎您給 Taro 提供優秀想法,或者直接貢獻代碼:

https://github.com/NervJS/taro/pulls。


分享到:


相關文章: