在9月16日的掘金小程序大會上,Taro 正式發佈了 1.0 版本。html
做爲一個多端統一開發框架,Taro 1.0 版本爲廣大開發者帶來了許多激動人心的特性,幫助開發者們更方便快捷地開發多端應用。前端
前進的腳步沒有停下,歷時一個多月,Taro 1.1 版本正式來襲!git
從 1.0 到 1.1,期間產生了 500 餘次 Commit,發佈了 23 個版本,Taro 一直保持高速的迭代頻率,只爲不斷打磨,爲它注入更多優秀的特性,讓更多開發者受益。github
自從微信小程序誕生以來,小程序的優點你們有目共睹,各大互聯網廠商開始摩拳擦掌,紛紛佈局小程序領域,其中勢頭最勁的當屬百度智能小程序和支付寶小程序。對於前端而言,既是機遇,由於平臺愈多,帶來的機會愈多;也是挑戰,由於不一樣的平臺總會各有差別,爲每一個平臺維護一份代碼,成本顯然過高。算法
爲了下降多端應用的開發成本,在已全面支持 微信小程序 的基礎上,Taro 在 1.1 版本中加入了對 百度智能小程序 和 支付寶小程序 的支持。npm
升級到 1.1 版本後,便可得到將現有項目轉換成百度智能小程序的能力。json
使用以下命令進行百度智能小程序端編譯預覽及打包:小程序
# npm script
$ 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
複製代碼
選擇百度智能小程序模式,須要你下載並打開百度開發者工具,而後在項目編譯完後選擇項目根目錄下 dist
目錄進行預覽。微信小程序
目前已有使用 Taro 開發的首款百度智能小程序 「京東好物街」 正式上線,可使用百度 APP,掃描如下二維碼進行體驗:bash
支付寶小程序的轉換方式與百度智能小程序一致。
你可使用以下命令進行支付寶小程序端編譯預覽及打包:
# npm script
$ 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
複製代碼
選擇支付寶小程序模式,須要你下載並打開支付寶小程序開發者工具,而後在項目編譯完後選擇項目根目錄下 dist
目錄進行預覽。
在加入 百度智能小程序 和 支付寶小程序 支持後,目前 Taro 已經提供了對 5 個平臺的支持,分別是 微信/百度/支付寶/React Native/H5,爲了方便開發者書寫平臺差別化代碼,Taro 爲每一個平臺提供了平臺標識,並能夠經過 process.env.TARO_ENV
來得到,其取值分別以下
weapp
,表明微信小程序h5
,表明 H5rn
,表明 React Nativeswan
,表明百度智能小程序,1.1 版本新增alipay
,表明支付寶小程序,1.1 版本新增在 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
的 BugA
新增 componentWillPreload
生命週期,用於數據預加載A
支持在同一做用域對 JSX 賦值F
多層 Map 循環嵌套包含條件判斷時問題修復F
中文字符被編譯成 unicode 碼問題修復F
三元表達式解析問題修復A
提高字符串模板的性能A
H5 支持分包配置F
修復 H5 後臺頁面依然執行生命週期的問題F
修復 PUT 、DELETE 等請求 body 爲對象時沒法發送 body 的問題A
增長 setTabBarStyle
與 setTabBarItem
APIA
增長 arrayBufferToBase64
與 base64ToArrayBuffer
APIA
編譯打包支持將公共 npm 包抽離成 lib 庫A
支持 TypeScriptF
修復項目初始化後 less 編譯報錯A
添加 config.window.navigationStyle 配置A
添加 showNavigationBarLoading
與 hideNavigationBarLoading
APIA
增長 arrayBufferToBase64
與 base64ToArrayBuffer
APIF
修復樣式支持警告A
watch 模式時代碼按需編譯F
修復同一文件夾下多個JS文件樣式引用錯誤F
app.json 的 expo 配置改成可覆蓋A
支持 Taro.pxTransform
F
iconPath 和 selectedPath 的爲同一個路徑致使的重複引用的報錯A
在 config 中添加 rn 的 expo 配置A
支持 deviceRatio 自定義更完整的功能迭代記錄請參閱 CHANGELOG
Taro 將會繼續保持高效迭代,以知足日益增加的多端開發需求
目前已經確認的開發計劃能夠參見 Taro 版本開發計劃。
值得注意的是,激動人心的小程序轉 Taro 代碼功能已經開發完成,進入內測階段,能夠經過以下命令安裝到 canary
版本,進行體驗
$ npm i -g @tarojs/cli@canary
複製代碼
歡迎針對這一功能,提供寶貴意見,意見入口請戳 👈👈👈
同時,爲了幫助 Taro 更好地成長,讓 Taro 更好地回饋全部開發者,歡迎您給 Taro 提供優秀想法,或者直接貢獻代碼。