# Taro
**Repository Path**: mallocxw/Taro
## Basic Information
- **Project Name**: Taro
- **Description**: Taro - 用 React 写小程序,生成 H5、React Native 等多端引用 Taro['tɑ:roʊ],泰罗·奥特曼,宇宙警备队总教官,实力最强的奥特曼
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 216
- **Created**: 2018-10-22
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Taro
[](https://www.npmjs.com/package/@tarojs/cli)
[](https://www.npmjs.com/package/@tarojs/taro)
[](https://www.npmjs.com/package/@tarojs/taro)
[](https://www.npmjs.com/package/@tarojs/taro)
[](https://www.npmjs.com/package/@tarojs/taro)
> 👽 Taro['tɑ:roʊ],泰罗·奥特曼,宇宙警备队总教官,实力最强的奥特曼。
## 简介
**Taro** 是一套遵循 [React](https://reactjs.org/) 语法规范的 **多端开发** 解决方案。现如今市面上端的形态多种多样,Web、React-Native、微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然非常高,这时候只编写一套代码就能够适配到多端的能力就显得极为需要。
使用 **Taro**,我们可以只书写一套代码,再通过 **Taro** 的编译工具,将源代码分别编译出可以在不同端(微信小程序、H5、React-Native 等)运行的代码。
## 使用案例
Taro 已经投入了我们的生产环境中使用,业界也在广泛地使用 Taro 开发多端应用。

[征集更多优秀案例](https://github.com/NervJS/taro/issues/244)
## 示例项目
* Taro Redux 示例 [taro-redux-sample](https://github.com/NervJS/taro-redux-sample)
* [TodoMVC](https://github.com/NervJS/TodoMVC) (小程序/H5/React Native)
* Taro 组件库示例 [taro-components-sample](https://github.com/NervJS/taro-components-sample)
* Taro 端能力示例 [taro-apis-sample](https://github.com/NervJS/taro-apis-sample)
* Taro 实验性特性项目 [taro-todo](https://github.com/NervJS/taro-todo)
* [仿知乎小程序](https://github.com/NervJS/taro-zhihu-sample)
* [Taro整合Dva示例](https://github.com/zuoge85/taro-dva)
* [V2ex小程序(TypeScript)](https://github.com/NervJS/taro-v2ex)
* [与微信小程序原生融合的示例](https://github.com/NervJS/taro-sample-weapp)
* [基于Taro + Dva构建的时装衣橱(电商实战项目)](https://github.com/EasyTuan/taro-msparis)
## 文章教程
* [从0到1构建适配不同端(微信小程序、H5、React-Native 等)的taro + dva应用](https://juejin.im/post/5bb1766d5188255c3272cdd0)
* [【小程序taro最佳实践】http请求封装(方便使用,增加token,统一错误日志记录和上报)](https://segmentfault.com/a/1190000016533592)
* [【小程序taro 最佳实践】异步action优雅实践(简化流程)](https://segmentfault.com/a/1190000016534001)
* [使用Taro框架开发小程序](https://juejin.im/post/5ba0a53af265da0ab5037234)
* [Taro下利用Decorator快速实现小程序分享](https://juejin.im/post/5b99da5d5188255c6f1e084e)
* [微信小程序授权登陆方案以及在Taro下利用Decorator修饰器实现](https://juejin.im/post/5b97a762e51d450e9649a8fd)
* [试用React语法的多端框架Taro问题汇总](https://segmentfault.com/a/1190000016247153)
* [Taro 在京东购物小程序上的实践](https://juejin.im/entry/5b987859e51d450ea2465ddd)
* [Taro实践 - TOPLIFE小程序 开发体验](https://juejin.im/post/5b3b786a6fb9a04f89780a9f)
* [Taro 技术揭秘:taro-cli](https://juejin.im/post/5b3ce041e51d45194832aaf6)
* [为何我们要用 React 来写小程序 - Taro 诞生记](https://juejin.im/post/5b30b476518825749e4a1d91)
## Taro 特性
#### React 语法风格
Taro 的语法规则基于 React 规范,它采用与 React 一致的组件化思想,组件生命周期与 React 保持一致,同时在书写体验上也尽量与 React 类似,支持使用 JSX 语法,让代码具有更丰富的表现力。
代码示例
```javascript
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 (