掌握Taro多端框架 快速小程序H5开发的全过程

1,019 阅读3分钟

1、Taro简介 Taro是一套遵循React语法规范的多端开发解决方案。 使用Taro只需要书写一套代码,再通过Taro的编译工具,将源代码分别编译出,可以在不同端(微信小程序,h5,Rn等)运行的代码。 以react的语法的地址 taro-docs.jd.com/taro/docs/r…

图片.png

图片.png

图片.png

注意点:安装中遇到的问题 使用npm安装出错 清除缓存:npm cache clean --force 或 npm cache verify 使用淘宝镜像:cnpm install -g @tarojs/cli

如果安装过程出现sass相关的安装错误

执行命令:npm install -g mirror-config-china

taro开发中需要用到的生命周期

import { View, Text } from '@tarojs/components'
import './index.scss'

export default class Index extends Component {

  state = {
    name: '111111111',
    text: '张三'
  }
  componentWillMount () {
    // 第一次在渲染之前执行 只执行一次
  }

  componentDidMount () {
    // 第一次渲染之后执行 只执行一次
    this.state.name = '22' // 错误的
    this.setState({ name: '3333333' }) // 正确的
    // 状态更新时异步的
    this.setState({ name: '44444' }, () => {
      //通过回调函数可以立刻拿到刚才setState中的name的值
      alert(this.state.name)
    }) // 正确的
  }

  componentWillUnmount () {
    // 卸载的时候执行 页面跳转的时候执行 只执行一次
  }
  componentWillUpdate () {
    // state 数据将要更新
  }
  componentDidUpdate () {
    // state 数据更新过后
  }
  componentDidShow () {
    // reactjs 中是不存在的 小程序中需要 h5中也就是写了
    // 页面显示的时候触发
  }
  shouldComponentUpdate (nextProps, nextState) {
    // 检查此次setState 是否需要进行render调用
    // 判断state中数据的状态 
    // 一般用来多次的setState调用时 提示render的性能
    if (nextState.name == '') {
      return false
    } else {
      return true; // 不更新
    }
  }
  componentWillReceiveProps (nextProps) {
    // 会在父组件传递给子组件的参数发生改变的时候触发
  }
  componentDidHide () {
    // reactjs 中是不存在的 小程序中需要 h5中也就是写了
    // 页面隐藏的时候触发
  }
  getName () {
    return '2222222222'
  }
  render () {
    return (
      <View className='index'>
        <Text>{this.state.name}</Text>
        <Text>{this.state.text}</Text>
      </View>
    )
  }
}

生命周期&state

  • 状态更新一定时异步的
  • react中的状态更新不一定时异步的,同react一致,更新数据必须调用setState方法,从vue中时直接赋值,但是这里直接赋值时不会更新组件的

父子组件传值以及父组件传递函数给子组件

  1. 创建子组件,在父组件引入,子组件props接受设置默认值,前提是传给我们得值是undefined,要不然子组件得默认值是不起作用得 图片.png 子组件得绑定事件

图片.png

父组件传递值以及函数

图片.png

注意点: 在react和h5页面中传递函数是可以得,但是在微信小程序中父组件得传递函数是报错得。小程序在处理函数得时候必须加on,为了统一规范,所有得都加on

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

  1. 如果使用小写得px 在页面中使用得时候回转成rem
  2. 但是PX大写得,则不会进行转译

图片.png

图片.png

短路表达式 ||

三元表达式 ?

图片.png

如果数组中存在判断,只可以先处理数据,然后在对数据进行遍历循环

图片.png 组织事件冒泡;

图片.png 传值 event永远在后面一位

图片.png 判断是什么开发环境,环境变量只在开发环境

图片.png

css写法得注意点: 图片.png

图片.png

对全局有效

图片.png

对数据进行存储

图片.png 获取数据

图片.png

设置数据

图片.png

小程序端和h5端得调试:

  1. 小程序自定义样式只针对自定义组件,在h5中会被影响,解决方法,尽量设置相同得class名
  2. 引入得组件要注意不要缺少

安装express,新建一个文件,npm init 创建一个index.js

node index 运行 图片.png