前段時間用mpvue開發過一個仿網易雲音樂的微信小程序(連接),但彷佛mpvue好像是再也不維護了,偶然得知有個Taro也能夠開發小程序,可是用的是React,正好也想了解了解React,因此體驗了一下Taro。git地址css
· 18/12/28 歌單詳情頁面
html
Taro 是一套遵循 React 語法規範的 多端開發 解決方案。使用 Taro,咱們能夠只書寫一套代碼,再經過 Taro 的編譯工具,將源代碼分別編譯出能夠在不一樣端(微信小程序、H五、RN 等)運行的代碼,組件可使用Taro的Taro-ui。(摘至官網)vue
Taro-ui是一款基於 Taro 框架開發的多端 UI 組件庫,裏面的一些組件仍是挺好用的,也挺好看的,官網很詳細並且還有效果圖提供觀看和體驗。react
React的話跟着官網走一遍基本就能開發了,看了react之後仍是以爲本身喜歡vue多一點(😂)git
npm install -g @tarojs/cli
taro init myApp
npm run dev:weapp
複製代碼
(摘自官網)若使用 微信小程序預覽模式 ,則需下載並使用微信開發者工具添加項目進行預覽,此時須要注意微信開發者工具的項目設置github
app.js對應的就是小程序的app.json一些基本配置能夠在這裏完成,好比tarBarnpm
"tabBar": {
"list": [
{
"text": "音樂",
"pagePath": "pages/music/music",
"iconPath": "./img/music.png",
"selectedIconPath": "./img/music.png"
},
{
"text": "電影",
"pagePath": "pages/index/index",
"iconPath": "./img/movie.png",
"selectedIconPath": "./img/movie.png"
}
]
}
複製代碼
//可以使用Taro的
Taro.navigateTo({url:'/pages/some?tag=tags'})
//或者
<Navigator url="/pages/some?tag=tags">更多</Navigator>
//獲取時使用
this.$router.params.tag
複製代碼
先去iconfont官網選擇你想要的icon,json
選擇添加到你本身的項目 複製上面的代碼在瀏覽器裏打開(前面記得加https:), 而後在本身的項目中src目錄下新建一個icon.scss名字隨意css也行,複製在瀏覽器打開之後的內容粘貼進去,最後在app.tsc中import './icon.scss'<Text class="iconfont icon-play-circle"></Text>
在其餘地方寫好子組件後,父組件內直接 import就行,傳值的話直接在引用子組件時寫入須要傳遞的數據便可小程序
<Child dataname={somedata} />
//在子組件中使用
this.props.dataname便可獲取傳遞過來的數據
複製代碼
在開發過程當中發現不能直接獲取setState之後的值,由於 this.state 和 props 必定是異步更新的,因此不能在 setState 後立刻拿到 state 的值,正確作法是微信小程序
this.setState({
somedata: 1
}, () => {
// 在這個函數內你能夠拿到 setState 以後的值
})
複製代碼