Skip to content

Taro 参考

基于 Taro 4.x · 核于 2026-07

速查

  • 版本:Taro 4.x,最新稳定 v4.1.8(2025-11-06);Node >= 16.20.0;编译内核 webpack4/5 或 Vite(自 v4.0)
  • 主打 React(v3.5 起默认 React 18),兼 Vue3;内置组件 PascalCase、事件 on 前缀Taro.* API 默认 promisify
  • 架构:Taro 1/2 重编译时 → Taro 3 重运行时(彻底重写)→ Taro 4 + Vite + CompileMode + 鸿蒙
  • 鸿蒙三路线(别混):harmony-hybrid(套壳,3.6.24+)/ harmony(ArkTS,4.0)/ harmony_cpp(C-API,4.1.0+,纯血主推,仅 Vite
  • 最常踩:页面 Hooks 从 @tarojs/taro 导、useReady 才能取节点、事件必 on 前缀、null 而非 undefined、不支持 React.lazy

一、版本 / 量级坐标

维护方京东·凹凸实验室(O2 Team)/ NervJS
仓库github.com/NervJS/taro
Star约 37k+
最新稳定版v4.1.8(2025-11-06)
4.0 首个正式版v4.0.3(Beta 2024-04,正式约 2024 年中)
Taro 3 GA3.0.0(2020-07-01)
Node 要求>= 16.20.0
主打框架React(v3.5 起默认 React 18),兼 Vue3/Vue2/Preact/Nerv/Svelte
编译内核webpack4 / webpack5 / Vite(Vite 自 v4.0;纯血鸿蒙 C-API 仅 Vite)

二、内置组件(@tarojs/components

类别组件
容器 / 文本View / Text / RichText / ScrollView
表单Button / Input / Textarea / Picker / Switch / Checkbox / Radio
媒体Image / Video / Canvas / Audio
导航 / 轮播Swiper / SwiperItem / Navigator / Icon / Map
  • PascalCaseReact 必须显式 importVue 模板直接用小写标签<view>,无需 import)。
  • 事件用 on 前缀 + 驼峰onClick / onScroll / onTouchstart);防滚动穿透 <View catchMove />

三、Taro.* API(@tarojs/taro

类别常用 API
路由navigateTo / redirectTo / switchTab / navigateBack / reLaunch
网络request / uploadFile / downloadFile
存储getStorageSync / setStorageSync / removeStorageSync
UIshowToast / showModal / showLoading / showActionSheet
能力探测canIUse(查各端支持度)
节点查询createSelectorQuery(须在 useReady 后)
  • 异步 API 默认 promisify,可直接 await;统一策略把各端差异收敛到微信规范,未适配可回退端命名空间(my / swan / tt)。

四、Hooks 清单

Hook对应生命周期说明
useRouter(){ path, params }
useLoadonLoad加载(v3.5.0+),可拿路由参数
useReadyonReady渲染完成,才能取节点
useDidShow / useDidHide显示 / 隐藏前后台切换
usePullDownRefreshonPullDownRefresh下拉刷新
useReachBottomonReachBottom触底
usePageScrollonPageScroll滚动带 scrollTop
useShareAppMessage / useShareTimeline分享需开启
App:useLaunch / useError / usePageNotFoundonLaunch应用级

框架 Hooks(useState/useEffect)从 react 导入;页面生命周期 Hooks 从 @tarojs/taro 导入。

五、鸿蒙三路线(严禁混淆)

路线起始版本命令本质
harmony-hybridv3.6.24+build:harmony-hybridH5 套壳(WebView),过渡
harmony(ArkTS)Taro 4.0taro build --type harmonyReact → ArkUI 自定义组件递归渲染
harmony_cpp(C-API)v4.1.0+taro build --type harmony_cpp渲染下沉 C++、直调 ArkUI C-API(纯血主推,仅 Vite
  • C-API 插件 @tarojs/plugin-platform-harmony-cpp2025-05-16 开源),配 projectPath / hapName(默认 entry),需 DevEco Studio。
  • 京东 APP 纯血鸿蒙版 2024-09 上线、核心链路用 Taro、获华为 S 级认证

六、config/index.ts 关键项

说明
sourceRoot / outputRoot默认 'src' / 'dist'
designWidth默认 750(可传函数按文件定制)
frameworkreact / vue3 / preact / ...
compiler'webpack4'|'webpack5'|'vite'{ type, prebundle }
mini / h5端专属配置(h5 有 router.mode
defineConstants / alias / plugins常量 / 别名 / 插件
jsMinimizer / cssMinimizerterser/esbuild · csso/esbuild/parcelCss

七、常见易错点

#易错点
1页面生命周期 Hooks 从 @tarojs/taro 导,框架 Hooks 从 react
2useEffect / componentDidMount 拿不到渲染层节点 → 用 useReady + createSelectorQuery
3函数型 props 必须 on 前缀(对齐小程序事件)
4模板数据用 null 而非 undefined
5勿用 id / class / style 作自定义组件属性名;stateprops 勿重名
6未被编译期识别的属性用 defaultProps 初始化
7不支持 React.lazy(小程序无动态 import)
8环境变量用整体 process.env.NODE_ENV勿解构
9Vue scoped 样式小程序端不支持 → CSS Modules
10React 内置组件必须 import;Vue 模板小写标签无需 import
11CLI 版本必须与项目依赖版本一致
12纯血鸿蒙 C-API 仅支持 Vite
13尺寸用 rpx(设计稿宽 750),编译期 pxtransform 换算
14路由参数取到都是字符串,数字自行转换
15鸿蒙三路线别混:harmony-hybrid / harmony(ArkTS) / harmony_cpp(C-API)

八、权威链接