taro使用总结

本文介绍了使用Taro框架,利用React语法开发微信、百度、支付宝小程序及H5、RN的方法。包括项目创建、运行、目录结构、生命周期管理、页面传参、组件通信、全局变量的设置以及开发注意事项。Taro允许开发者编写一次代码,多端运行,大大提高了开发效率。
摘要由CSDN通过智能技术生成

Taro 就是可以用 React 语法写小程序的框架,拥有多端转换能力,一套代码可编译为微信小程序、百度小程序、支付宝小程序、H5、RN等

一、创建项目

# 使用 npm 安装 CLI
$ npm install -g @tarojs/cli

使用命令创建模板项目:

$ taro init myApp

安装依赖

# 进入项目根目录
$ cd myApp

# 使用 yarn 安装依赖
$ yarn

# OR 使用 cnpm 安装依赖
$ cnpm install

# OR 使用 npm 安装依赖
$ npm install

二、运行项目

Taro 编译分为 dev 和 build 模式:

  • dev 模式(增加 --watch 参数) 将会监听文件修改。
  • build 模式(去掉 --watch 参数) 将不会监听文件修改,并会对代码进行压缩打包。
  • npm run dev:运行平台  
    例运行到微信小程序:npm run build:weapp

     

三、项目目录

创建项目页面时需在app.config.js里配置页面

export default {
  pages: [
    'pages/detail/detail',
    'pages/login/index',
    'pages/index/index',
   
  ],
  
  window: {
    backgroundTextStyle: 'light',
    navigationBarBackgroundColor: '#fff',
    navigationBarTitleText: 'WeChat',
    navigationBarTextStyle: 'black'
  }
}

四、生命周期

以hooks为例

1、useDidShow 等同于 componentDidShow 页面生命周期钩子

2、useDidHide   等同于 componentDidHide 页面生命周期钩子

3、usePullDownRefresh 等同于 onPullDownRefresh 页面生命周期钩子

4、useReachBottom   等同于 onReachBottom 页面生命周期钩子

5、useShareAppMessage 等同于 onShareAppMessage 页面生命周期钩子 ,使用时需要在页面的config.js里配置enableShareAppMessage: true

五、页面传参

1、页面跳转

Taro.redirectTo({
   url: `/pages/index/index?mobile=${mobile}`
})

2、获取页面参数

import Taro,{getCurrentInstance,useDidShow} from '@tarojs/taro'
export default function Index(props) {
    const [mobile,setMobile]=useState('')
    useDidShow(() => {
        setMobile(router.params.mobile)
    })
}

六、组件通信

父组件

import Taro,{getCurrentInstance,useDidShow} from '@tarojs/taro'
import InputLabel from '../../components/label/label' //子组件
import {useState,useEffect} from 'react'
import { View, Text ,Input,Button } from '@tarojs/components'
export default function Index(props) {
    const [mobile,setMobile]=useState('')
    let changeData=(e)=>{ //父组件接收子组件事件
        setMobile(e)
     }
    return(
        <View className="body">
            <InputLabel changeData={changeData} edit={edit} mobile={mobile}></InputLabel>
        </View>
    )
     
})

子组件

import Taro,{getCurrentInstance,render,useDidShow} from '@tarojs/taro'
import {useState,useEffect} from 'react'
import { View, Text ,Input,Button } from '@tarojs/components'
export default function InputLabel(props) {
  useDidShow(() => {
    console.log('componentDidShow')
  })
  let changeVal=(e,index)=>{ //子组件向父组件传参
    props.changeData(e.detail.value)
  }
  return(
    <View>
      <Input onInput={(e)=>changeVal(e)}  className='labelInput' value={props.mobile} placeholder='请输入手机号'></Input>
    </View>
  )
}

七、全局变量

在 Taro 中推荐使用 Redux 来进行全局变量的管理,但是对于一些小型的应用, Redux 就可能显得比较重了,这时候如果想使用全局变量,推荐如下使用。

新增一个自行命名的 JS 文件,例如 global_data.js,示例代码如下

const globalData = {}
 
export function set (key, val) {
  globalData[key] = val
}
 
export function get (key) {
  return globalData[key]
}

随后就可以在任意位置进行使用啦

import { set as setGlobalData, get as getGlobalData } from './path/name/global_data'
 
setGlobalData('test', 1)
 
getGlobalData('test')

八、开发注意事项:

  • toast在小程序中提示信息最大只能传7个字

  • 在小程序中监听input组件数据变化要使用onInput事件,onChange事件只在H5中有效

  • span标签在小程序中无效,如果使用了span标签,在编译成小程序时页面不会渲染这个标签,使用的所有标签必须从tarojs/components引用

  • 列表循环时需要设置key值,否则页面会报错

  • 在 Taro 中尺寸单位建议使用 px、 百分比 %,Taro 默认会对所有单位进行转换。在 Taro 中书写尺寸按照 1:1 的关系来进行书写,即从设计稿上量的长度 100px,那么尺寸书写就是 100px,当转成微信小程序的时候,尺寸将默认转换为 100rpx,当转成 H5 时将默认转换为以 rem 为单位的值。

    如果你希望部分 px 单位不被转换成 rpx 或者 rem ,最简单的做法就是在 px 单位中增加一个大写字母,例如 Px 或者 PX 这样,则会被转换插件忽略。
     

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Taro使用for循环可以通过使用JSX语法来实现。你可以使用数组的map方法来遍历一个数组并生成对应的JSX元素。例如,假设你有一个数组`data`,你可以通过以下方式在Taro使用for循环: ``` {data.map((item, index) => ( // 在这里添加你要生成的JSX元素 ))} ``` 其中,`data.map`会遍历数组`data`中的每个元素,并返回一个新的数组,新数组中的每个元素都是按照你提供的回调函数的返回值生成的。在回调函数中,`item`表示当前遍历的元素,`index`表示当前元素在数组中的索引。 你可以在这个回调函数中生成需要的JSX元素,然后将它们放在外层的大括号中,这样就可以在Taro使用for循环了。例如,如果你想生成一组`View`组件,可以这样写: ``` {data.map((item, index) => ( <View key={index}> {item} </View> ))} ``` 这样就可以根据数组`data`中的元素生成对应的`View`组件了。请注意,为了确保每个生成的元素都有唯一的`key`属性,你可以使用`index`作为`key`值。 总结起来,在Taro使用for循环遍历一个数组可以通过使用数组的map方法,结合JSX语法来实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [taro 使用echarts图表.zip](https://download.csdn.net/download/weixin_40532650/12737545)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [小程序第三方框架对比 ( wepy / mpvue / taro )](https://blog.csdn.net/weixin_42333548/article/details/103487410)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值