前段时间用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
<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 以后的值
})
复制代码