Taro 是一个开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发 微信 / 京东 / 百度 / 支付宝 / 字节跳动 / QQ / 飞书 小程序 / H5 / RN 等应用。 现如今市面上端的形态多种多样,Web、React Native、微信小程序等各种端大行其道。
当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然非常高,这时候只编写一套代码就能够适配到多端的能力就显得极为需要。
Taro 3 可以支持转换到 H5、ReactNative 以及任意小程序平台。
目前官方支持转换的平台如下:
在 Taro 3 中可以使用完整的 React / Vue / Vue3 / Nerv 开发体验
示例代码(1)class 继承的形式
import React, { Component } from 'react'
import { View, Text } from '@tarojs/components'
export default class Index extends Component {
state = {
msg: 'Hello World!'
}
config = {
navigationBarTitleText: '首页',
}
componentWillMount () { }
componentDidShow () { }
componentDidHide () { }
render () {
return (
<View className='index'>
<Text>{this.state.msg}</Text>
</View>
)
}
}
示例代码(2)function 形式,React 讲究万物皆组件,两种方式根据自己喜好。wellcms 小程序使用的是这种方式。
Hook 这个单词的意思是"钩子"。
React Hooks 的意思是,组件尽量写成纯函数,如果需要外部功能和副作用,就用钩子把外部代码"钩"进来。 React Hooks 就是那些钩子。
useState()用于为函数组件引入状态(state)。纯函数不能有状态,所以把状态放在钩子里面。
import {useState, useEffect} from 'react';
import Taro from '@tarojs/taro';
import {View, Text} from '@tarojs/components';
import './index.scss';
export default function Index() {
const [pageTitle, setPageTitle] = useState('Hello World!');
//const pageTitle = 'Hello World';
Taro.setNavigationBarTitle({
title: '首页'
});
return (
<View className='index'>
<Text>{pageTitle}</Text>
</View>
)
}
快速在IDE创建页面
Taro create --name 页面名称