▶_MiniApp ToolkitAgent 接入

Taro

框架活跃维护

京东凹凸实验室开源的多端统一开发框架。支持 React/Vue 语法,一次编译可运行到微信/支付宝/百度/字节/华为/快应用等多端。提供完整的 CLI 工具链、丰富的插件生态。

37,582🕒 最近更新 2026-04
前端框架小程序UI框架Taro京东ReactVue

特性

  • React/Vue双语法
  • 多端编译(微信/支付宝/百度/抖音/H5/RN)
  • 插件化架构
  • TypeScript支持
  • CSS Modules/Tailwind
  • CLI脚手架
  • 社区活跃(42k+ stars)

详细文档

Taro

👽 Taro['tɑ:roʊ],泰罗·奥特曼,宇宙警备队总教官,实力最强的奥特曼。

简介

Taro 是一套遵循 React 语法规范的 多端开发 解决方案。现如今市面上端的形态多种多样,Web、React-Native、微信小程序等各种端大行其道,当业务同时在不同的端都要求有所表现的时候,针对不同的端编写多套代码的成本显然非常高,这时只编写一套代码就能适配到多端的能力就显得极为重要。

使用 Taro,我们只需书写一套代码,再通过 Taro 的编译工具,即可将源代码分别编译出在不同端(微信/百度/支付宝/字节跳动小程序、快应用、H5、React-Native 等)运行的代码。

学习资源

awesome-taro

掘金小册:Taro 多端开发实现原理与实战

加入社区共建

Taro 邀你加入社区共建

社区共享

Taro 交流社区——让每一次交流都被沉淀

Taro 物料市场——让每一个轮子产生价值

使用案例

Taro 已经投入了我们的生产环境中使用,业界也在广泛地使用 Taro 开发多端应用。

Taro 特性

React 语法风格

Taro 的语法规则基于 React 规范,它采用与 React 一致的组件化思想,组件生命周期与 React 保持一致,同时在书写体验上也尽量与 React 类似,支持使用 JSX 语法,让代码具有更丰富的表现力。

代码示例

code
import Taro, { Component } from '@tarojs/taro'
import { View, Button } from '@tarojs/components'

export default class Index extends Component {
  constructor () {
    super(...arguments)
    this.state = {
      title: '首页',
      list: [1, 2, 3]
    }
  }

  componentWillMount () {}

  componentDidMount () {}

  componentWillUpdate (nextProps, nextState) {}

  componentDidUpdate (prevProps, prevState) {}

  shouldComponentUpdate (nextProps, nextState) {
    return true
  }

  add = (e) => {
    // dosth
  }

  render () {
    return (
      <View className='index'>
        <View className='title'>{this.state.title}</View>
        <View className='content'>
          {this.state.list.map(item => {
            return (
              <View className='item'>{item}</View>
            )
          })}
          <Button className='add' onClick={this.add}>添加</Button>
        </View>
      </View>
    )
  }
}

快速开发微信小程序

Taro 立足于微信小程序开发,众所周知小程序的开发体验并不是非常友好,比如小程序中无法使用 npm 来进行第三方库的管理,无法使用一些比较新的 ES 规范等等,针对小程序端的开发弊端,Taro 具有以下的优秀特性:

✅ 支持使用 npm/yarn 安装管理第三方依赖。

✅ 支持使用 ES7/ES8 甚至更加新的 ES 规范,一切都可自行配置。

✅ 支持使用 CSS 预编译器,例如 Sass 等。

✅ 支持使用 Redux 进行状态管理。

✅ 支持使用 Mobx 进行状态管理。

✅ 小程序 API 优化,异步 API Promise 化等等。

支持多端开发转化

Taro 方案的初心就是为了打造一个多端开发的解决方案。目前 Taro 代码可以支持转换到 微信/百度/支付宝/字节跳动小程序快应用H5 端 以及 移动端(React-Native)

更多功能

如果你还想 Taro 支持新的特性,请使用 FeatHub 进行投票,我们将综合考虑投票结果等因素来确定开发的优先级。

Feature Requests

Feature Requests

Let's fund issues in this repository

实战开发指南

快速创建项目

code
# 安装 CLI
npm install -g @tarojs/cli

# 创建项目(React 语法)
taro init my-app

# 创建项目(Vue3 语法)
taro init my-app --template vue3

编译到各端

code
# 微信小程序
taro build --type weapp

# 支付宝小程序
taro build --type alipay

# 抖音小程序
taro build --type tt

# H5
taro build --type h5

# React Native
taro build --type rn

常见问题与解决方案

  1. 微信小程序 setData 性能:Taro 在编译时会自动优化 setData,但仍需避免大对象更新。使用 useState 时拆分细粒度状态,避免整个页面的 state 合并更新。

  2. 跨端样式差异:不同端的默认样式不同,建议使用 process.env.TARO_ENV 进行条件编译:

code
// 条件编译
{process.env.TARO_ENV === weapp && <View>仅微信显示</View>}
  1. 第三方 UI 库集成

    • Vant Weapp:通过 taro-plugin-html 使用,或直接使用 NutUI-Taro(京东官方适配版)
    • NutUI:npm install @nutui/nutui-taro 直接支持 Taro
    • TDesign:提供 @tarojs/plugin-platform-mini-ci 插件
  2. 分包加载:Taro 支持小程序原生分包,在 app.config.ts 中配置:

code
subPackages: [
  { root: pages/sub, pages: [index] }
]
  1. API 差异处理:Taro 提供 Taro.xxx() 统一 API,底层自动适配各端。对于各端独有 API,用 process.env.TARO_ENV 条件分支。