據說Taro是從幾個星期前開始的,在一次飯桌上,一個小夥伴說:「Hey, 你據說了Taro麼,據說只須要寫一套程序就能夠生成H5,小程序以及RN的代碼模板,而且相似於React的語法。」「哦?還有這麼好的事,趕忙研究一下。」javascript
去官網,Github瞭解了一下,Taro是由京東·凹凸實驗室團隊開發的,在掘金上看到他們的發稿,大體歸(tu)納(cao)以下:css
原文在這裏:爲什麼咱們要用 React 來寫小程序 - Taro 誕生記html
跑去官網,按照步驟,copy了demo運行了一下,大體以下:java
npm install -g @tarojs/cli taro init myApp # H5端運行 $ npm run dev:h5 $ taro build --type h5 --watch # 微信小程序端運行 $ npm run dev:weapp $ taro build --type weapp --watch
起步在這裏:Get Started,大體這樣就能夠跑起來了,分別在瀏覽器和微信開發工具中運行了一下,均可以看到界面輸出,感受仍是不錯。node
Taro的開發語法遵循React,基本上寫過React的都是很好上手。大體是這個樣子的:react
import Taro, { Component } from '@tarojs/taro' import Index from './pages/index' import './app.scss' class App extends Component { // 項目配置 config = { pages: [ 'pages/index/index' ], window: { backgroundTextStyle: 'light', navigationBarBackgroundColor: '#fff', navigationBarTitleText: 'WeChat', navigationBarTextStyle: 'black' } } componentWillMount () {} componentDidMount () {} componentDidShow () {} componentDidHide () {} render () { return ( <Index /> ) } }
如下是我本身我的的感覺,由於尚未在項目中應用,可能有些地方說得不太穩當,還望指出。git
正如Taro本身所說的,只須要寫一個版本的代碼,就能夠編譯生成H五、微信小程序以及RN的代碼,在效率上確實會有所提高。github
若是做爲一個'Reacter',那麼用Taro來開發項目的話確定是沒什麼上手難度的,可是若是是沒有寫過react項目的,那麼可能最開始仍是有學習成本。shell
對比了微信小程序官網和Taro的Gitbook文檔,大體上不少東西都是一一對應的,基本的許多場景均可以知足,可是也有欠缺。好比:組件中的RichText
在Taro中就介紹不足,在Taro中(可能^_^)和微信小程序中分別是這樣調用的:npm
// Taro <RichText nodes={nodes} onTap={this.tap} /> // 微信小程序 <rich-text nodes="{{nodes}}" bindtap="tap"></rich-text>
文檔中缺少了nodes以及onTap方法的說明,這可能須要開發者本身調試。但實際上我按照微信小程序的方法加上onTap
以後,控制檯是報方法未定義的錯誤,而實際上我是有寫的。【這點要是在實際開發中可能欲哭無淚,要麼就是引入其餘的庫或者本身手寫,無疑會增長開發成本以及風險】。
有人或許想說,我直接在生成的微信小程序代碼文件夾(dist)中加上不就能夠了,可是你可能不是太好改,由於代碼是這樣的:
若是你的項目足夠下,而且沒有運用到特別複雜的組件,而且有開發多端代碼的須要,你能夠嘗試使用Taro
,由於即便你須要的組件沒有,也能夠在有限的時間內方便地寫出來,並且京東商城小程序貌似也是用Taro寫的,之後應該會有更多的支持。除此以外,暫時能夠先觀望觀望 O(∩_∩)O哈哈~