小程序模板網(wǎng)

Taro 1.2:將已有微信小程序轉(zhuǎn)換為多端應(yīng)用

發(fā)布時(shí)間:2018-12-24 08:43 所屬欄目:小程序開(kāi)發(fā)教程

在距離Taro 1.1 發(fā)布 之后一個(gè)月,經(jīng)歷了 500 多次提交和 17 個(gè)預(yù)覽版本的迭代之后,我們有信心在今天發(fā)布 Taro 1.2 正式版。

Taro 1.2 比起 Taro 1.1 和其它的小程序開(kāi)發(fā)框架,增加了許多首次在小程序框架上實(shí)現(xiàn)的功能,這些功能包括但不限于:

微信小程序轉(zhuǎn)多端應(yīng)用

就像博客大戰(zhàn)時(shí)代博客服務(wù)商提供了「搬家」工具一樣,Taro 現(xiàn)在也提供了「搬家」工具讓你方便地入駐 Taro 社區(qū)。轉(zhuǎn)換原有微信小程序應(yīng)用非常簡(jiǎn)單,只需要安裝 Taro 命令行工具,定位到待轉(zhuǎn)項(xiàng)目根目錄,運(yùn)行命令:

$ taro convert
復(fù)制代碼

Taro 就會(huì)把轉(zhuǎn)換好的代碼生成在根目錄下的 taroConvert 文件夾。轉(zhuǎn)換后的代碼是高可讀性的 JSX 代碼,沒(méi)有額外的龐大組件庫(kù)開(kāi)銷(xiāo)。你可以輕易地進(jìn)行二次開(kāi)發(fā),或者直接將這些代碼通過(guò)taro build 命令生成任意 Taro 已經(jīng)支持平臺(tái)的應(yīng)用。

我們已經(jīng)嘗試使用 taro convert 成功轉(zhuǎn)換了四個(gè) GitHub 上最熱門(mén)的開(kāi)源微信小程序應(yīng)用,它們轉(zhuǎn)換之后都表現(xiàn)良好:

  • EastWorld/wechat-app-mall ★5000+ - 微信小程序商城
  • tumobi/nideshop-mini-program ★3000+ - 基于 Node.js + MySQL 開(kāi)發(fā)的開(kāi)源微信小程序商城
  • RebeccaHanjw/weapp-wechat-zhihu ★1000+ - 仿知乎
  • jectychen/wechat-v2ex ★400+ - V2EX

taro convert 不僅僅能支持轉(zhuǎn)換微信小程序應(yīng)用,它還能轉(zhuǎn)換微信小程序第三方組件。例如 wxParse 經(jīng)過(guò) taro convert 編譯之后還能突破原有只能解析 11 層 HTML 嵌套的限制,理論上可以解析無(wú)限層 HTML 嵌套。

更多詳情可以訪(fǎng)問(wèn)文檔 nervjs.github.io/taro/docs/t… 了解更多。

字節(jié)跳動(dòng)(頭條)小程序支持

作為一個(gè)「多端統(tǒng)一開(kāi)發(fā)框架」,Taro 當(dāng)然也不會(huì)放過(guò)字節(jié)跳動(dòng)小程序。在 Taro 1.2,你可以通過(guò)如下命令進(jìn)行字節(jié)跳動(dòng)小程序端的編譯預(yù)覽及打包:

# npm script
$ npm run dev:tt
$ npm run build:tt
# 僅限全局安裝
$ taro build --type tt --watch
$ taro build --type tt
# npx 用戶(hù)也可以使用
$ npx taro build --type tt --watch
$ npx taro build --type tt
復(fù)制代碼

選擇字節(jié)跳動(dòng)小程序模式,你需要下載并打開(kāi) 字節(jié)跳動(dòng)小程序開(kāi)發(fā)者工具 ,然后在項(xiàng)目編譯完后選擇項(xiàng)目根目錄下 dist 目錄進(jìn)行預(yù)覽。

相應(yīng)地,Taro 的平臺(tái)標(biāo)識(shí)(process.env.TARO_ENV)也增加了新成員 tt ,代表字節(jié)跳動(dòng)小程序。

CSS Modules 支持

在 Taro 最早開(kāi)源的時(shí)候我們就支持了 SCSS 、 LESS 和 Stylus ,而在 Taro 1.2 中我們百尺竿頭更進(jìn)一步,給社區(qū)帶來(lái)了 JSX 的好伙伴:CSS Modules。

對(duì)于 Taro 而言支持 CSS Modules 有著重要的意義。Taro 在 1.0 的時(shí)候已經(jīng)支持組件的 style傳入 JavaScript 對(duì)象,支持了 CSS Modules 之后組件的 className 也能做這點(diǎn)——這意味著 Taro 完全可以做到 JSX 的一項(xiàng)特性:「Everything in JavaScript」。同時(shí),通過(guò)編輯器的自動(dòng)補(bǔ)全和校驗(yàn)功能,開(kāi)發(fā)者再也不用擔(dān)心 CSS 類(lèi)誤輸入和 CSS 類(lèi)的命名問(wèn)題。

你可以查閱文檔CSS Modules 的使用 找到 CSS Modules 的開(kāi)啟方法。

CSS Modules 的支持主要由 Taro 社區(qū)的個(gè)人開(kāi)發(fā)者 @MrKou47 (MrKou47) 開(kāi)發(fā),感謝他的貢獻(xiàn)。

MobX 支持

在小程序應(yīng)用變得日趨復(fù)雜的今天,越來(lái)越多的開(kāi)發(fā)者選擇使用獨(dú)立的狀態(tài)管理工具。在 Taro 1.1 你可以選擇 Redux 的體系的 redux-thunk 、 dva-core 、 redux-saga 等工具。在 Taro 1.2 我們又帶來(lái)了 taro-mobx 。

在 Taro 中使用 MobX 非常簡(jiǎn)單,你可以通過(guò) taro init <your app> 命令創(chuàng)建一個(gè)全新的 MobX 模板項(xiàng)目。也可以查閱使用 MobX 文檔將 taro-mobx 接入已有項(xiàng)目。

MobX 的支持主要由 Taro 社區(qū)的個(gè)人開(kāi)發(fā)者 @nanjingboy (Tom Huang) 開(kāi)發(fā),感謝他的貢獻(xiàn)。

更多特性

面對(duì)社區(qū)里給力的個(gè)人貢獻(xiàn)者,Taro 官方團(tuán)隊(duì)也沒(méi)有閑著。在 Taro 1.2 開(kāi)發(fā)期間通過(guò) commit 關(guān)閉了 169 個(gè) issue 的同時(shí),我們還披星戴月帶來(lái)了更多特性。其中值得一提的是:

  • H5 路由系統(tǒng)徹底重構(gòu)
  • 小程序組件的 props 支持傳入 JSX 元素
  • 支持 JSX 元素寫(xiě)在 switch-case 中,并支持 if-else 和 switch-case 的多重嵌套
  • 支持引用別名(alias)
  • 與百度小程序和字節(jié)跳動(dòng)小程序官方通力合作,抹平了一大波和微信小程序的差異

你可以通過(guò) CHANGELOG 查閱完整的功能迭代紀(jì)錄。

寫(xiě)在最后

Taro 1.2 最為激動(dòng)人心的功能顯然是「微信小程序轉(zhuǎn) Taro」 功能,通過(guò)這個(gè)功能已有的微信小程序應(yīng)用能轉(zhuǎn)化更好維護(hù)的 Taro(類(lèi) React) 代碼,也能把 Taro 代碼轉(zhuǎn)化為多端應(yīng)用。

但更重要的是,本次 Taro 1.2 更新的兩個(gè)核心功能點(diǎn)均由個(gè)人開(kāi)發(fā)者貢獻(xiàn)——這完全體現(xiàn)了 Taro 社區(qū)的活躍、強(qiáng)大和開(kāi)放。我們也會(huì)長(zhǎng)期地維護(hù)與社區(qū)開(kāi)發(fā)者們的關(guān)系,與開(kāi)發(fā)者們一同成長(zhǎng),互利互贏(yíng)。這也是 Taro 選擇開(kāi)源的意義所在。


易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開(kāi)源 碼云倉(cāng)庫(kù):starfork
本文地址:http://22321a.com/wxmini/doc/course/25037.html 復(fù)制鏈接 如需定制請(qǐng)聯(lián)系易優(yōu)客服咨詢(xún):800182392 點(diǎn)擊咨詢(xún)
QQ在線(xiàn)咨詢(xún)