1. 全局安装 @tarojs/cli

    1. $ npm install -g @tarojs/cli or
    2. $ yarn global add @tarojs/cli
  2. 初始化一个名为myApp的项目

    1. $ taro init myApp

    一、起步 - 图1

  3. 运行

    1. $ npm run dev:weapp
    2. taro将会进入微信小程序编译预览模式。我们打开微信开发者工具,将项目导入,会在预览窗口中看到hello world

    1.生命周期函数

    image.png

    2.路由

    在 Taro 中,路由功能是默认自带的,不需要开发者进行额外的路由配置。 ```javascript // 跳转到目的页面,打开新页面 Taro.navigateTo({ url: ‘/pages/detail/detail’ })

// 跳转到目的页面,在当前页面打开 Taro.redirectTo({ url: ‘/pages/detail/detail’ })

//跳转传参 skipToDetail = ({ title, description }) => { Taro.navigateTo({ url: /pages/me/me?title=${title}&description=${description} }) }

//详情页面接收参数 getCurrentInstance import Taro,{getCurrentInstance} from ‘@tarojs/taro’ export default class Me extends Component { $instance = getCurrentInstance() render() { console.log(this.$instance.router.params) return ( 我的 ) } }

  1. <a name="l8eam"></a>
  2. #### 3.组件
  3. [![taro跳转页面.mp4](https://gw.alipayobjects.com/mdn/prod_resou/afts/img/A*NNs6TKOR3isAAAAAAAAAAABkARQnAQ)](https://www.yuque.com/wangyuhuan/ygpeeb/qa6yqr?_lake_card=%7B%22status%22%3A%22done%22%2C%22source%22%3A%22transfer%22%2C%22videoId%22%3A%22inputs%2Fprod%2Fyuque%2F2021%2F402732%2Fmp4%2F1614240641115-ff9f599d-a809-4fdc-a199-d528cfc58847.mp4%22%2C%22margin%22%3Atrue%2C%22name%22%3A%22taro%E8%B7%B3%E8%BD%AC%E9%A1%B5%E9%9D%A2.mp4%22%2C%22id%22%3A%222m4Nd%22%2C%22card%22%3A%22video%22%7D#2m4Nd)
  4. - 主页 ( Swiper,列表 )
  5. ```javascript
  6. import React, { Component } from 'react'
  7. import Taro from '@tarojs/taro'
  8. import { View, Text, Swiper, SwiperItem, Image, } from '@tarojs/components'
  9. import './index.less'
  10. import img0 from '../../imgs/01.png'
  11. import img1 from '../../imgs/02.png'
  12. export default class Index extends Component {
  13. componentWillMount() { }
  14. componentDidMount() {
  15. console.log('DidMount')
  16. }
  17. componentWillUnmount() { }
  18. componentDidShow() {
  19. console.log('show')
  20. }
  21. componentDidHide() {
  22. console.log('hide')
  23. }
  24. handleTo = () => {
  25. Taro.navigateTo({
  26. url: '/pages/me/me'
  27. })
  28. Taro.redirectTo({
  29. url: '/pages/me/me'
  30. })
  31. }
  32. skipToDetail = ({ title, description }) => {
  33. Taro.navigateTo({
  34. url: `/pages/me/me?title=${title}&description=${description}`
  35. })
  36. }
  37. render() {
  38. const listSet = [
  39. { title: '标题一', description: '描述一' },
  40. { title: '标题二', description: '描述二' },
  41. { title: '标题三', description: '描述三' },
  42. ]
  43. return (
  44. <View className='index'>
  45. <Swiper indicatorDots autoplay>
  46. {[img0, img1].map(img => (<SwiperItem key={img}><Image src={img} /></SwiperItem>))}
  47. </Swiper>
  48. <View>
  49. {listSet.map((item,index) => (<View className='list-item' key={index} onClick={this.skipToDetail.bind(this,item)}>
  50. <View><Text>{item.title}</Text></View>
  51. <View><Text>{item.description}</Text></View>
  52. </View>))}
  53. </View>
  54. </View>
  55. )
  56. }
  57. }
  • 详情页 ```javascript //app.config.js export default { pages: [ ‘pages/index/index’, ‘pages/me/me’ ], … }
  1. ```javascript
  2. import React, { Component } from 'react'
  3. import Taro,{getCurrentInstance} from '@tarojs/taro'
  4. import { View, Text } from '@tarojs/components'
  5. import './me.less'
  6. export default class Me extends Component {
  7. $instance = getCurrentInstance()
  8. componentWillMount() { }
  9. componentDidMount() {
  10. }
  11. componentWillUnmount() { }
  12. componentDidShow() { }
  13. componentDidHide() { }
  14. render() {
  15. console.log(this.$instance.router.params)
  16. return (
  17. <View className='me'>
  18. <Text>我的</Text>
  19. </View>
  20. )
  21. }
  22. }