在距離Taro 1.1 發布(bu) 之后一個月,經歷了 500 多次提交和 17 個預(yu)覽版本的(de)迭代之后,我(wo)們有信心在今天(tian)發布(bu) Taro 1.2 正(zheng)式(shi)版。
Taro 1.2 比起 Taro 1.1 和其它的小程序開發(fa)框架(jia),增加(jia)了許多首次在(zai)小程序框架(jia)上實(shi)現的功能,這些功能包括但(dan)不限于:
就像博(bo)客(ke)大戰(zhan)時代博(bo)客(ke)服務商(shang)提供了「搬家」工(gong)具(ju)(ju)一樣(yang),Taro 現在(zai)也提供了「搬家」工(gong)具(ju)(ju)讓你方便地入駐 Taro 社區。轉換(huan)原有微信小(xiao)程(cheng)序應用非常簡(jian)單,只需要安裝 Taro 命(ming)令(ling)行工(gong)具(ju)(ju),定位到(dao)待轉項(xiang)目根(gen)目錄,運行命(ming)令(ling):
$ taro convert 復制代碼
Taro 就會把轉換好的(de)代(dai)碼生(sheng)成(cheng)(cheng)在(zai)根(gen)目錄下的(de) taroConvert 文(wen)件夾。轉換后(hou)的(de)代(dai)碼是高(gao)可(ke)讀性(xing)的(de) JSX 代(dai)碼,沒有額外的(de)龐大組件庫開(kai)(kai)銷(xiao)。你可(ke)以輕(qing)易地進(jin)行二次(ci)開(kai)(kai)發,或者直接將(jiang)這些代(dai)碼通(tong)過taro build 命(ming)令生(sheng)成(cheng)(cheng)任意 Taro 已(yi)經支(zhi)持平(ping)臺(tai)的(de)應用。
我們已(yi)經(jing)嘗(chang)試使用(yong) taro convert 成(cheng)功轉換(huan)了(le)四(si)個 GitHub 上最熱門的開源微信小程序應用(yong),它們轉換(huan)之(zhi)后都表現良好:
taro convert 不(bu)僅(jin)僅(jin)能(neng)支持(chi)轉(zhuan)(zhuan)換微(wei)信(xin)小(xiao)程(cheng)(cheng)序應(ying)用,它還能(neng)轉(zhuan)(zhuan)換微(wei)信(xin)小(xiao)程(cheng)(cheng)序第三方(fang)組(zu)件。例如(ru) wxParse 經過 taro convert 編(bian)譯之(zhi)后(hou)還能(neng)突破原有只(zhi)能(neng)解(jie)析 11 層 HTML 嵌套的限制(zhi),理論上可以(yi)解(jie)析無限層 HTML 嵌套。
更(geng)多詳(xiang)情可以訪問(wen)文檔 nervjs.github.io/taro/docs/t… 了解更(geng)多。
作為一個(ge)「多端統一開發框架」,Taro 當然(ran)也不會放過(guo)字節跳動小程序。在 Taro 1.2,你可以通過(guo)如下命(ming)令進行字節跳動小程序端的編譯預覽及(ji)打包:
# npm script $ npm run dev:tt $ npm run build:tt # 僅限全局安裝 $ taro build --type tt --watch $ taro build --type tt # npx 用戶也可以使用 $ npx taro build --type tt --watch $ npx taro build --type tt 復制代碼 |
選擇字(zi)節跳動小程序模式,你需(xu)要(yao)下載并打開 字(zi)節跳動小程序開發者(zhe)工具 ,然后(hou)在項(xiang)目(mu)(mu)編譯完后(hou)選擇項(xiang)目(mu)(mu)根目(mu)(mu)錄下 dist 目(mu)(mu)錄進行預覽(lan)。
相(xiang)應(ying)地,Taro 的平臺標識(process.env.TARO_ENV)也增(zeng)加了新成員 tt ,代表字節跳動小程序。
在 Taro 最早(zao)開源(yuan)的時候我(wo)們就(jiu)支(zhi)持(chi)了 SCSS 、 LESS 和 Stylus ,而在 Taro 1.2 中我(wo)們百(bai)尺竿頭更進一步(bu),給社區帶來(lai)了 JSX 的好伙伴:CSS Modules。
對于 Taro 而言支(zhi)持 CSS Modules 有著重要的(de)(de)意(yi)義。Taro 在 1.0 的(de)(de)時候已經支(zhi)持組件的(de)(de) style傳入 JavaScript 對象,支(zhi)持了 CSS Modules 之(zhi)后組件的(de)(de) className 也能(neng)做這點——這意(yi)味著 Taro 完全可以(yi)做到 JSX 的(de)(de)一(yi)項特性:「Everything in JavaScript」。同時,通(tong)過編輯器(qi)的(de)(de)自動補全和(he)校驗功能(neng),開發者(zhe)再也不(bu)用擔心 CSS 類(lei)誤輸入和(he) CSS 類(lei)的(de)(de)命名問題。
你(ni)可(ke)以(yi)查閱文檔CSS Modules 的(de)使用 找到 CSS Modules 的(de)開啟方法(fa)。
CSS Modules 的支持主要由 Taro 社區的個人(ren)開發者 @MrKou47 (MrKou47) 開發,感謝他的貢獻。
在小(xiao)程序應(ying)用(yong)變得日趨復雜的(de)(de)(de)(de)今天,越來(lai)越多的(de)(de)(de)(de)開發者選(xuan)擇使(shi)用(yong)獨(du)立的(de)(de)(de)(de)狀態管理工具(ju)。在 Taro 1.1 你可以選(xuan)擇 Redux 的(de)(de)(de)(de)體系(xi)的(de)(de)(de)(de) redux-thunk 、 dva-core 、 redux-saga 等(deng)工具(ju)。在 Taro 1.2 我們又帶來(lai)了 taro-mobx 。
在 Taro 中使用(yong) MobX 非常簡單,你可(ke)以(yi)通過 taro init <your app> 命令創建一個全(quan)新的 MobX 模(mo)板項目。也可(ke)以(yi)查閱(yue)使用(yong) MobX 文檔將 taro-mobx 接入已有項目。
MobX 的支持主(zhu)要由 Taro 社區的個(ge)人開發者 @nanjingboy (Tom Huang) 開發,感謝他的貢獻。
面對社區里給(gei)力(li)的個(ge)人貢獻(xian)者,Taro 官方團(tuan)隊也(ye)沒有閑著。在 Taro 1.2 開發(fa)期間通過 commit 關閉了(le) 169 個(ge) issue 的同時,我們還披星戴月帶來了(le)更多(duo)特(te)性。其中值得一(yi)提的是:
你可以通過 CHANGELOG 查閱(yue)完(wan)整的功(gong)能迭代(dai)紀錄。
Taro 1.2 最為激動(dong)人心的功(gong)能(neng)(neng)顯(xian)然是「微信小程序轉(zhuan) Taro」 功(gong)能(neng)(neng),通過這個功(gong)能(neng)(neng)已有的微信小程序應用能(neng)(neng)轉(zhuan)化更好維(wei)護的 Taro(類 React) 代(dai)碼(ma),也能(neng)(neng)把(ba) Taro 代(dai)碼(ma)轉(zhuan)化為多端應用。
但(dan)更重要的是,本次 Taro 1.2 更新的兩個核心功能(neng)點均由個人(ren)開發(fa)(fa)(fa)者貢獻——這(zhe)完全體(ti)現了 Taro 社區(qu)的活躍、強大和開放。我(wo)們(men)也會長期地維護與(yu)社區(qu)開發(fa)(fa)(fa)者們(men)的關(guan)系(xi),與(yu)開發(fa)(fa)(fa)者們(men)一同成長,互利互贏。這(zhe)也是 Taro 選(xuan)擇開源(yuan)的意義所在(zai)。