Releases: NervJS/taro
chore(release): publish 3.2.4
特性
H5
- 新增 React 版本的组件库,可用于代替 WebComponents 版本,以提高兼容性
chore(release): publish 3.2.3
特性
H5
- 新增 React 版本的组件库,可用于代替 WebComponents 版本,以提高兼容性
chore(release): publish 3.2.2
修复
RN
- 特性支持 taro css module
- 特性支持 rn TabBar 的图片支持本地图片
- 修复设置 hoverStartTime 后,立即出现点击态问题
- 修复跳转白条问题
H5
- 修复缺少 chain 参数,导致无法识别 H5 的多端文件问题 (#9068),by @linshengjian
其它
chore(release): publish 3.2.1
修复
小程序
- 修复 Vue3 使用
slot
失效的问题,#9018 ,by @b2nil - 为支付宝、微信小程序增加蓝牙相关 API,#9016
- 补全
page-container
组件,#8966 - 默认模版中增加字节小程序的配置文件
project.tt.json
,避免字节小程序 IDE 打开项目失败
H5
- 修复当
Input
组件的type
为undefined
时渲染报错的问题,by @CodeDaraW
chore(release): publish 3.2.0
Highlights
一、更快编译速度
Taro 3 React Native 对整个编译系统进行较大调整,不再生成中间代码,而是直接利用 Metro 生成 bundle
,通过运行时适配 Taro 3 标准,这种方式使得编译过程更简单,大大提升了编译速度。
二、source-map
支持
Taro 3 对编译系统改造在提升编译速度的同时,也天然支持source-map
,对于开发体验是一个巨大的提升,能够达到与开发原生 React Native 应用一致的体验。
三、多 React Native 版本支持,拥抱最新版 0.64
Taro 3 对系统架构进行了全面升级,React Native 版本取决于开发者项目中的依赖,目前支持 0.60 以上的 React Native 版本,当然最新的 0.64 也是完全支持。
在 React Native 0.64 的版本中,iOS 端完成 了对 Hermes 引擎的支持,默认启用了内联引用,也支持 React 17 等等,想体验这些新特性的开发者只需升级对应依赖即可。
新项目升级
Taro 模板默认依赖 React 17、TypeScript 4,运行 React Native 端会自动安装 0.64 的版本,直接使用即可。
旧项目升级
从 v2.x 升级的同学需要先按迁移指南进行操作。
如果是Taro 3 的旧项目,手动升级对应的依赖:
react: ^17.0.0
react-dom: ^17.0.0
typescript: ^4.1.0
@typescript-eslint/parser: ^4.15.1
@typescript-eslint/eslint-plugin: ^4.15.1
react-native:^0.64.0
设置 ESLint 配置:
// .eslintrc
module.exports = {
"extends": ["taro/react"],
"rules": {
"react/jsx-uses-react": "off",
"react/react-in-jsx-scope": "off"
}
}
四、更丰富API与组件
要真正做到一套代码,多端复用,非常重要的一点就是组件和 API 的覆盖度,在 Taro 3.2 之前,适配 React Native 已经实现了很多常用 API 和组件,但与小程序,H5 之间还存在较大的差距,需进一步完善。在新的版本中,我们进一步提升组件和 API 的覆盖度,共新增 45 个 API 与 8 个组件。
五、API与组件按需引入
在 Taro 3 中,我们也对打包后 bundle
大小进行了优化。在实际的业务场景中,可能并不会使用到 Taro 提供的所有组件和 API ,但仍然会将所有的组件与 API 及相关依赖打包到最终的 bundle
中,这无疑会增加 bundle
的大小。
为了减少打包后的大小,我们对组件和 API 实现了按需引入的方式,比如:
import Taro from '@tarojs/taro'
Taro.scanCode(options)
//实际打包后的引入会根据页面使用的引入
=> import { scanCode } from '@tarojs/taro-rn/dist/lib/scanCode'
特性
RN
- 更快的编译速度
- 基于全新的编译体系,启动速度提升1倍
- 更便捷的开发调试体验
- 去掉了 webpack 后,source-map 的支持更加简单,这对于开发体验是一个巨大的提升
- 更全面的API和组件
- 新增 38 个API
- 新增 7 个组件
- 更灵活的接入方式
- 支持 React Native 0.60 及以上版本,可自行定制,我们也将探索更多版本的支持
- API 和组件支持按需加载,未使用的原生依赖,无需安装
- 架构完全基于 React Native 生态,相关工具、组件等均可轻松接入
- 更稳定的源码
- 使用 TypeScript、ESlint、Jest,保证代码质量
- 欢迎社区贡献
升级指南
从 v2.x 升级的同学需要先按迁移指南进行操作。
从 v3.x 升级的同学,首先需要安装 v3.2 的 CLI 工具:
npm i -g @tarojs/cli
然后进入项目,删除 node_modules、yarn.lock、package-lock.json。
最后把 package.json
文件中 Taro 相关依赖的版本修改为 ^3.2.0
,再重新安装依赖,至此升级结束。
目前 Taro 3 仅支持 React 开发的项目运行在 React Native 端。
感谢
- 最后,特别感谢为 Taro 从 v3.1 走到 v3.2 贡献过代码的各位同学
chore(release): publish 3.1.5
chore(release): publish 2.2.17
修复
- 补全 API getUserProfile
- 特殊情况下redux更新无法触发视图更新, fix #8705
- 修复页面首次加载时调用Taro.relaunch会跳转到空页面
- 修复Taro.redirectTo和Taro.reLaunch方法导致多次componentDidShow的问题
- 修复form组件设置h5原生属性无效的问题
chore(release): publish 3.1.4
修复
- 修复环境变量失效的问题,fix #8900
小程序
- 修复无法移除组件
class
属性的问题,by @KEENV
Typings
- 增加
getUserProfile
的类型,by @baranwang
chore(release): publish 3.1.3
特性
- 支持把 Taro 的 React 组件单独编译为小程序原生组件,详细文档
修复
小程序
- 修复小程序渲染
html
时出现死循环的问题,by @LiHDong - 修复给
View
新增hidden
属性无效的问题,by @changcllong - 修复跳转预加载 API,#8873
- 修复与钉钉小程序开放接口 API 的兼容问题,#8684
- 修复阻止跨代组件事件冒泡失败的问题,#8757
H5
- 使得
querystring
多个相同参数能解析为数组,by @liuchuzhang
Typings
systemInfo
方法添加theme
和enableDebug
的类型,by @baranwang- 优化
Picker
组件的类型,by @SyMind
chore(release): publish 3.1.2
修复
小程序
- 修复渲染 html 时,带属性的
style
标签无法识别的问题,#8827,by @LiHDong - 补全 API
getUserProfile
,#8810 - 补全
Map
组件属性optimize
,#8784 - 修复使用原生组件时属性传递失败的问题,#8797
- 修复
pure-view
与static-view
的转换问题,#8789
H5
- 升级 Stencil 到最新版本,修复报错: "TypeError: Cannot read property 'childNodes' of null",#8798
Typings
- 修复
ITouchEvent
里的changedTouches
属性的类型错误,by @ryougifujino