原生開發的一些痛點:
-
原生開發對Node、預編譯器、webpack支持不好,影響開發效率和工程構建流程
-
微信定義了一個不倫不類的語法,不如正經學vue、react,學會了全端通用,而不是只為微信小程序
-
vue/react生態里有太多周邊工具,可以提高開發效率,比如ide、校驗器、三方庫。。。
-
微信那個ide和專業編輯器相比實在不好用
Taro介紹
Taro 是一套針對以上的痛點和限制,同時遵循 React 語法規范的 多端開發 解決方案
使用 Taro,我們可以只書寫一套代碼,再通過 Taro 的編譯工具,將源代碼分別編譯出可以在不同端(微信/百度/支付寶/字節跳動/QQ小程序、快應用、H5、React-Native 等)運行的代碼
Taro將JSX編譯成小程序模板,由於babel的核心編譯器Babylon是支持對JSX的語法解析,因此可以通過它幫着構造AST(虛擬語法樹),
我們需要專注的就是把AST進行轉換,得到需要的新的AST,再將AST進行遞歸遍歷,生成小程序的模板
最核心的技術把源代碼編譯成AST,再將AST轉換操作得到目標代碼
在Taro中,我們通過編譯時的處理以及運行時的適配來轉換成小程序代碼
編譯時的處理:
運行時框架 @tarojs/taro
編譯出來后,不能直接在小程序中運行,小程序需要運行時的適配來幫助我們把代碼運行在小程序里。運行時的適配主要是生命周期的轉換,還有一些事件的處理。