Skip to content

Releases: NervJS/taro

chore(release): publish 3.6.2

24 Feb 13:23
8160249
Compare
Choose a tag to compare

特性

小程序

修复

小程序

  • 补充 createMediaRecorder 类型 #13276 @halodong
  • 补充支付宝小程序关于Map组件的属性 #13285 fix #13281 @LeoHuang520
  • 补充qq小程序关于openQzonePublish的声明 #13302 fix #13297 @By-Ha
  • 补充微信小程序checkIsAddedToMyMiniProgram的类型声明 #13330 fix #13325 @whinc
  • 补充 支付宝小程序按钮 onGetUserInfo, onGetPhoneNumber事件, 修复Lottie组件类型未导出问题 #13346 @TheKonka
  • 补充微信小程序ChooseMedia关于类型mediaType的属性'mix' #13347 @richard1015

H5

RN

其他

优化

  • 优化@tarojs/plugin-mini-ci控制台预览二维码尺寸过大,不方便扫码 #13313 @ruidoc

chore(release): publish 3.6.1

09 Feb 11:07
Compare
Choose a tag to compare

特性

小程序

  • 迁移plugin-inject到主仓 (6390b29)
  • advanced: 虚拟列表支持 enhanced 属性 fix #13217 (55de2b6)
  • vue support fragment fix (c0aa4e0)

H5

  • h5: 更新 navigator 组件支持参数 (f6af1ea)
  • h5: 优化 ScrollViewContext 支持 (77a5063)

修复

小程序

  • 修复 location pathname 错误解析逻辑 (ec09d98)
  • 修复拼写错误 (1c21446)@hxlniada
  • components: update input methods (0a2790a)
  • components: VirtualList restCount可能是负数 (4e3cad3)@halodong
  • library: 修复旧版本适配器导出 (9f82c0a)
  • react: 禁用 react 合成事件抛出 fix #13223 (ff64cad)

H5

  • h5: 为 vue 适配器映射 tap & click 事件 fix #13210 (591dd76)
  • h5: 修复 vue2 v-model 语法使用 (406dfc4)
  • h5: lint styles (1b272b1)

RN

  • postcss-pxtransform: 修复px值在transform过程中重复执行问题 (#13243) (63c8dab)

chore(release): publish 3.6.0

02 Feb 02:04
fb03ff7
Compare
Choose a tag to compare

两个月前,我们发布了 Taro v3.6 的 canary 版本,在技术委员会和社区范围内提供跨端路由库、跨框架组件等主要能力和重要修复的测试,并发起社区投票正式确定了当前版本的代号 —— Reach。

taro-3.6.jpg

日前 Taro v3.6 正式版本已经发布,下文将围绕 3.6 版本内的跨端、平台能力支持等多个方面展开,快速了解在 v3.6 中各个重要特性。

一、跨端能力支持

支持各类跨端能力,抹平多端研发之间的体验差异,是 Taro 一直以来尝试去实现的,基于 Taro 3 适配多端前端 UI 框架的逻辑,通过在小程序端模拟实现框架所需的 BOM / DOM API 就能达成对于各类跨端能力的适配。

1. 支持路由库

在 Web BOM 中,History & Location 对象是重要组成部分,它们是实现前端路由的关键。Taro 为支持前端路由库的使用,在运行时中引入了 histroy location 对象的实现,同时尽可能与 Web 端规范对齐。通过在 window 对象上访问到 historylocation 对象,并支持监听 hashchangepopstate 事件,为跨端使用路由库提供基础。

// 统称: 页面路由状态
window.history
window.location

// 支持监听事件
window.addEventListener('hashchange', () => {})
window.addEventListener('popstate', () => {})

小程序天然支持多页面(pages 数组配置),因此 Taro 并非以整个应用为一个路由系统,而是顺应小程序规范以页面维度进行路由管理。每当切换页面时,会将当前页面的页面路由状态缓存。跳转至新页面后会重新创建页面路由状态,并挂载在 window 对象上。当返回上一级页面时,会将上一级页面的页面路由状态重新挂载到 window 对象中。

至此,可以在小程序中使用成熟的前端路由库了,包括 react-routervue-router。在路由库中,诸如 <Link> 组件内部会动态生成 <a> 标签,因此需要引入 @tarojs/plugin-html 插件以支持在 Taro 中使用 html 标签开发组件。

{
  "plugins": ["@tarojs/plugin-html"]
}

在 Taro 编译过程中,当 DOM 序列化数据的 nn 字段为 HTML 标签时,标签会映射为对应的小程序组件名称。由于无法提前预知动态标签,因此需要应用显式告知可能会使用到的动态标签。例如在应用中塞入一个无样式的标签名即可:

<View>
  <a></a>
</View>

更多细节可以查看 官方文档,也可以查看官方提供的 DEMO 获知更多用法。

2. 支持网络请求库

与适配各路由库类似,通过对运行时补充就能支持绝大多数的网络请求库,所有请求库在底层都是通过使用 XMLHttpRequestFetch 提供能力支持的,而请求库大多都兼容 XMLHttpRequest 对象,也即是在提供 XMLHttpRequest 对象实现的基础上,就能支持绝大多数的第三方库。

支持这些成熟的网络请求库(例如 axios 等)就能为开发者在跨端研发场景下,提供更好的研发体验。通过引入 @tarojs/plugin-http 插件,为小程序环境提供网络请求库所需的运行时环境支持。

{
  "plugins": ["@tarojs/plugin-http"]
}

注意:当前 @tarojs/runtime 在小程序环境中缺少BlobFormDataFile对象,这在网络请求库的文件上传特性中是必须的,故暂不支持。

在支持网络请求库的同时,考虑到部分用户,特别是 web 转小程序的项目中依赖 cookie 实现鉴权,@tarojs/plugin-http 插件模拟实现了 document.cookie api 以及通过 http 响应头 Set-Cookie 来设置客户端 cookie 值 ,行为和 web 中保持一致。 此功能默认设置为关闭,需要的可通过 enableCookie 配置开启。

参数名 类型 默认值 说明
enableCookie Boolean false 支持 document.cookie 、 通过后端返回 Set-Cookie 响应头来设置 cookie
disabledFormData Boolean true 是否禁用 FormData 全局对象
disabledBlob Boolean true 是否禁用 Blob 全局对象

在 @tarojs/plugin-http 插件中,以 axios 作为基准库完成测试,如果在使用其他请求库时遇到适配问题,可在社区或通过 issues 反馈相关信息。

二、跨框架组件库

借助于 stencil,Taro 3 得以通过 Web Components 实现一套跨框架组件库,通过适配器将 Taro 的组件库提供给各个前端 UI 框架使用,开发者也可以基于这些封装上层组件,提供更多有趣的能力。

1. Web 端适配器

出于降低开发者维护门槛,与 stencil 组件库打包流程更好兼容等多方面考虑,在 3.6 版本中我们在升级 stencil 依赖版本的同时,通过官方提供的 ds-output-target 工具替换了原有的自定义适配器。

该版本适配器更好的抹平各个框架组件使用差异,补齐过往版本迭代过程中部分特性兼容性的缺失问题,为开发者提供更好的体验。在 3.6 中依旧保留过往版本各框架适配器,可以参考以下示例通过配置别名替换组件库适配器(不建议使用,后续不会维护旧版适配器,可能无法得到新的组件或特性支持)。

// config/index.js

const config = {
	h5: {
		webpackChain (chain) {
			chain.resolve.alias.set(
				// 当前版本适配层地址 @tarojs/components/dist/[framework]
				'@tarojs/components/dist/react',
				// 旧版本适配层地址 @tarojs/components/dist/[framework]/component-lib
				'@tarojs/components/dist/react/component-lib'
			)
		}
	}
}

2. 虚拟列表

作为从 Taro 3 开始支持的上层组件,虚拟列表应当是很多开发者都熟悉的特性,在过往版本中也有过数次升级,支持包括 unlimitedSize、relative 定位模式等特性,在 v3.6 版本中我们再次对虚拟列表做出了调整,将其从 @tarojs/components 包中抽离出来独立提供。

https://img20.360buyimg.com/ling/jfs/t1/125645/6/13305/50138/5f6aaaa4E2f20eba7/d70a2d2da2d68de1.jpg

在新版本中,虚拟列表支持在选择 preact、vue3 框架构建的项目中使用,同时在使用各个前端 UI 框架的项目中都支持使用选择 absoluterelative ****************不同定位方式,unlimitedSize 模式与传入 itemSize 函数等特性也得到支持。

以 Vue 为例,我们需要在入口文件声明使用:

// app.js 入口文件
import Vue from 'vue'
import registerVirtualList from '@tarojs/components/virtual-list'
// Note: 使用以下路径导出插件可以在 vue 中获得更好的类型支持
// import registerVirtualList from '@tarojs/components-advanced/dist/components/virtual-list/vue'

Vue.use(registerVirtualList)

一个最简单的长列表组件会像这样,virtual-list 的 5 个属性都是必填项:

<! –– row.vue 单项组件 ––>
<template>
  <view :id="id" :class="index % 2 ? 'ListItemOdd' : 'ListItemEven'"> Row {{ index }} : {{ data[index] }} </view>
</template>

<script>
  export default {
    props: ['id', 'index', 'data'],
  }
</script>

<! –– page.vue 页面组件 ––>
<template>
  <virtual-list
    wclass="List"
    :height="500"
    :item-data="list"
    :item-count="list.length"
    :item-size="100"
    :item="Row"
    width="100%"
  >
    <! –– Vue 中支持列表首尾使用的插槽,对应 React 中的 renderTop、renderBottom 参数 ––>
	  <template v-slot:top>
	    <view>top</view>
	  </template>
	  <template v-slot:bottom>
	    <view>bottom</view>
	  </template>
  </virtual-list>
</template>

<script>
  import { markRaw } from 'vue'
  import Row from './row.vue'

  function buildData(offset = 0) {
    return Array(100)
      .fill(0)
      .map((_, i) => i + offset)
  }

  export default {
    data() {
      return {
        Row: markRaw(Row),
        list: buildData(0),
      }
    },
  }
</script>

需要注意的是,为抹平多框架参数差异便于维护,旧版本中部分命名会统一修改,比如在 React 版本中通过 children 传入的子节点组件改为 item;Vue 中的 wclass、wstyle 这类写法也不再支持。

在新版本中,根据需求和研发场景合理设置 itemSizeoverscanCountplaceholderCount 等参数优化长列表,可以获得比旧版本更加顺滑的体验,更多详情可以参考官方文档

三、平台能力支持

拓展更多端平台,适配支持各端能力与特性,是跨端解决方案不断发展的重要组成部分之一。

1. 支持鸿蒙端平台插件

在 Taro 与 OpenHarmony 建立官方合作关系,并受邀成立 CrossPlatformUI Sig(跨平台前端框架兴趣小组)后,让 Taro 支持支配鸿蒙就一直在议程上,鸿蒙的方舟开发框架提供类 Web 范式编程,支持使用 JS 开发 UI 层,其语法与小程序相接近,可以沿用 Taro 现有的架构适配鸿蒙。

taro-harmony

持续关注 Taro 的开发者可能还记得,在 v3.5-canary 版本时,我们曾推出支持 Taro 应用适配到鸿蒙平台的插件,但最终没有合入 v3.5 版本主干并顺势推出该能力。

@tarojs/plugin-platform-harmony 端平台插件经过一段时间的打磨,相关能力与特性也在社区推进下持续优化,框架编译的项目在鸿蒙开发板上得到进一步验证,同时在 Taro v3.5 新增的 @tarojs/webpack5-runner 编译内核也能够为鸿蒙项目编译提供支持,终于我们在 v3.6 中再次为社区开发者提供了适配鸿蒙的端平台插件。

// config/index.js

config = {
  // 配置使用插件
  plugins: ['@tarojs/plugin-platform-harmony'],
  // harmony 相关配置
  harmony: {
    // 【必填】鸿蒙应用的绝对路径
    projectPath: path.resolve(process.cwd(), '../MyApplication'),
    // 【可选】HAP 的名称,默认为 'entry'
    hapName: 'entry',
    // 【可选】JS FA 的名称,默认为 'default'
    jsFAName: 'default'
  }
}

具体使用方法可查看官方文档,需要注意鸿蒙插件不在 Taro 项目内维护,所以并不会每次发布同版本号版本,直接使用minor 与 Taro 版本号相同的版本即可。

特别感谢以下同学为鸿蒙适配作出的贡献:

@AdvancedCat@jiaozitang@huozhongyi123@troy-sxj@JSZabc@crazyonebyone@evernoteHW@soulhat@xueshuai@LuMeiling

2. React Native 能力

为了让整体开发体验跟 RN 更加一致,减少开发者的理解成本。我们对 @tarojs/rn-runner 的代码进行了重构。将 Taro RN 需要的所有编译逻辑,都封装到了 metro 配置中,与 RN 项目集成会更加灵活。

新版本在项目根目录下会创建入口文件 index.js 和配置文件 metro.config.js。如项目本身有这两个文件,则不会生成,需要参考模板进行添加或合并。另外 Taro RN 的相关配置,集中在 resolver 和 transformer 中,可根据相关源码自行覆盖调整。

React Native 0.70 版本已于 2022-9-5 正式发布,在 0.70 版本中 Hermes 已成为默认的 JS 引擎,

v3.6 版本将与 RN 默认配置保持一致,如不需要可自行关闭。Hermes 也带来了 RN 性能的较大提升,特别是启动场景,详细内容参考官方文章

Hermes

Taro 将与 RN 社区保持同步,将默认的 RN 版本设置为 0.70。相关依赖也已同步至最新版本,仍然可使用 yarn upgradePeerdeps 进行更新。@react-native-community/clipboard@react-native-community/cameraroll 已被弃用,旧版本升级后需要删除。

注意:升级后将不再支持 iOS 12,详细内容请参考 discussions。同时 Taro Playground 作为 RN 端的调试工具及跨端 Demo 同步更新至 v3.6。

3. Web 端能力

通过在社区中收集的相关问题反馈,Taro Web 各类特性也一直在不断推进,让开发者在多端研发的体验能够尽可能达成一致。面对各类自定义 Web 端能力的需求,虽然有很多方案可以提供组件、API 等能力的补充,但类似小程序端平台插件这样的能力在 Web 端中并没有得到支持。

在 3.6 版本中,我们将 Web 端各类定制化的能力从 runner 中转移到 @tarojs/plugin-platform-h5 插件中提供,譬如通过配置 useHtmlComponents 模式替换使用的组件库;注册 Web Components 组件库,配置各前端 UI 框架组件适配器;移除不必要的 API 等等特性。

class H5 extends TaroPlatformWeb {
  // ...
}

export default (ctx) => {
  ctx.registerPlatform({
    name: 'h5',
    useConfigName: 'h5',
    async fn({ config }) {
      const program = new H5(ctx, config)
      await program.start()
    },
  })
}

和小程序端一样,借助于插件或 TaroPlatformWeb 基类,开发者可以很容易横向或纵向拓展 Web 端的各项能力,详情可参考文档

Web 端也一直在补充各类开发者常用的组件与 API 抹平与小程序端的差异。在 v3.6 版本中新增生命周期、WXML 相关的 API 支持若干,例如:createIntersectionObservercreateMediaQueryObserver 等,同时新增 movable-areamovable-view 等组件支持。

在社区开发者交流时,我们也发现了部分研发场景下需要监听各 API、组件不支持事件,相比于支持 canIUse 方法在跨端转换场景中能够更有效定位问题,所以通过支持 __taroNotSupport 事件满足相关需求,可以参考以下示例使用。

interface IOption {
  name: string // 不支持的组件或 API 名称
  type: 'method' | 'component' // 'method': API; 'component': 组件
  category: 'permanently' | 'temporarily' | 'weixin_corp' // 'weixin_corp': 仅在微信公众号 JS-SDK 环境下支持
  args?: any[] // API 传入参数
  instance?: unknown // 组件实例
}
Taro.eventCenter.on('__taroNotSupport', (option: ...
Read more

Release/3.5.12

17 Jan 11:36
7a9b6e1
Compare
Choose a tag to compare

特性

小程序

RN

修复

小程序

  • 修复宿主环境同时使用插件页面和插件组件时currentPage.route异常中断插件组件渲染 fix #11991 by @dazjean
  • 修复virtual list 代码剔除不生效 by @zhiqingchen
  • 修复支付宝开启小程序基础库2.0构建报错,fix #12879 by @Wujerry
  • 修改buildDependencies默认值 by @PengBoUESTC
  • 修复字节小程序onRegionchange回调不触发 fix #13078 by @yoyo837
  • 修复支付宝showToastoption.iconerrorfail的映射问题 fix #13073 by @heiazu
  • 修复独立分包下, 产物未引用公共 common 文件 fix #13118 by @heiazu
  • 修复Taro React 使用 @tarojs/plugin-html 插件,input 标签的maxLength 属性不生效 fix by @oasis-cloud
  • 修复readConfig时,createSwcRegister没有对软链接的.config.js进行编译 by @atom-7
  • 修复 taro-helper 的幽灵依赖@babel/traverse fix #13144 by @ztl8702
  • 修复onReady 偶现不触发的问题,fix #12424 by @Chen-jj

H5

CLI

  • 修正命令行里的一个提示 by @ztl8702

其它

  • 修复onPageNotFound等APP生命周期在首屏时失效问题 by @rohow

Typings

  • 更新getDeviceInfotypes by @x1028
  • 更新LivePusherprops by @x1028

Refactor

小程序

其他

chore(release): publish 3.5.11

30 Dec 07:45
af3d541
Compare
Choose a tag to compare

特性

H5

  • 新增 createIntersectionObserver、createMediaQueryObserver API 支持,by @heiazu

RN

修复

小程序

  • 修复 v-html 缺失组件模板的问题,fix #12973
  • 修复独立分包模板错误问题,fix #12995
  • 修复装饰器语法报错的问题,fix #13007

H5

  • 修复 Tabbar 首页找不到 CurrentPage.path 导致的白屏问题,by @hisanshao
  • 优化 Modal 相关显示逻辑,fix #12507 by @KkZsc
  • 修复 swiper 组件在 circular 模式下自动播放故障
  • 移除 swiper 组件 loopDestroy 避免重建循环导致的性能问题
  • 修复 @tarojs/taro-h5 依赖 sideEffects 配置,fix #13018

RN

  • 升级 react-native-maps 依赖,by @taoqf
  • 修复 uploadFile 返回问题,与 request 保持一致,by @zhiqingchen
  • 新增不支持的 createSelectorQuery API 导出,避免加载失败问题,by @zhiqingchen
  • 修复多行文本在单行时,无法设置低于35的高度 fix #12862 @moseszhou
  • 修复部分android机型点击命中率低 fix #12857 @moseszhou

其它

  • 升级 @swc/core 版本,解决 link @tarojs/webpack5-runner 后编译报错问题,by @tutuxxx
  • prebundle 排除 mobx 相关依赖
  • 更新 vue 默认类型导出,支持非 native 标签开发类型提示
  • 优化 prebundle-h5 打包 remote 应用模块加载规则(继承自 webpack5 提供的 rules)

Typings

  • 优化 useLoad / useDidShow 钩子类型,fix @12983
  • 同步升级组件类型

chore(release): publish 3.5.10

09 Dec 08:10
b7dd50d
Compare
Choose a tag to compare

修复

CLI

  • 修复配置文件读取报错的问题,#12674

chore(release): publish 3.5.9

09 Dec 03:30
6d44f6e
Compare
Choose a tag to compare

特性

小程序

  • 支持 onUnhandledRejection 生命周期

修复

小程序

  • 新增对支付宝小程序的 page-containershare-element 组件的支持,by @TheKonka
  • 修复支付宝小程序中 subpackagestabBar.custom 配置不生效的问题,by @TheKonka
  • 修复 Vue3 作用域插槽提示类型错误: TransformReact2VueType<SlotProps> 的问题,fix #12880,by @agileago
  • 支持字节跳动小程序的 RateButton 组件和若干 API,by @b-yp
  • 修复百度小程序模板的循环语法错误问题,#12864

H5

  • 修复路由栈内实例卸载异常的问题,fix #12751,by @hisanshao
  • 修复 showActionSheet API 在第一次打开点击取消时有回调,再次点击取消没有回调的问题,fix #12887,by @hopkins77
  • 修复 h5.devServer.port 为字符串时,启动时展示不必要的错误提示的问题,fix #12946,by @lexmin0412

CLI

  • 修复读取的 env 自定义变量未序列化成字符串的问题,by @bigmeow
  • 修复配置文件读取报错的问题,#12674
  • 优化 Webpack5 预编译的功能,#12839
  • 自动分析小程序模板里依赖的 wxs 文件,#9055

Typings

  • 完善微信和支付宝小程序 CommonConfig, AppConfig, WindowConfig, PageConfig 的类型,by @TheKonka
  • 完善微信和支付宝小程序 Input 组件类型,支付宝小程序添加 always-systemname 属性,修改 enableNative 默认值为true,by @TheKonka
  • 完善 RootPortalSwiperItem 组件的类型,by @TheKonka
  • 完善 openEmbeddedMiniProgram API 类型,by @learner-pm
  • 增加百度小程序激励视频广告 API (createRewardedVideoAd)的类型

chore(release): publish 3.5.8

29 Nov 14:30
5137e31
Compare
Choose a tag to compare

特性

小程序

  • 独立分包添加公共逻辑抽取 fix #12206 by @alexlees
  • 修复开启 html 转译插件后,部分元素属性没有进行映射导致更新失败 fix #12673 by @Barrierml
  • 支持 chooseContact 相关 API fix #11356 by @TheKonka

H5

  • previewImage 查看大图功能,支持手势缩放 by @baosiqing
  • downloadFile 方法新增 timeout 字段 fix #12648 by @Cookeke

修复

小程序

  • 兼容 alipay 删除 native-slot 参数 by @CANntyield
  • 统一 stylus 的 rule 名称,便于通过 webpack-chain 获取对应规则 by @Binbiubiubiu
  • 修复编译详情重新指定 output 对 project.config 失效,并支持自定义编译配置根据不同端打包输出到不同的目 by @jianjiachenghub
  • 修复字节小程序 showToast API 差异 fix #11879 by @jianjiachenghub
  • 优化 webpack 插件使用 compiler 导出实例

H5

  • 兼容 Windows 编译排除 @tarojs/components 转义 by @PengBoUESTC
  • 优化 preact 兼容问题 fix #12693 by @xiaof520
  • 优化插件判断 mode 参数方法,修复热更新依赖错误 fix #12685
  • 修复 Button 组件 disabled 参数失效问题 fix #12797
  • 补充不兼容事件唤起时,调用 API 的参数

RN

  • 优化 screenOptions 配置参数 fix #12743

CLI

  • 添加 .env* 文件解析逻辑,将配置文件定义的变量拓展到 process.env 中 by @PengBoUESTC
  • 优化 PreBundle 特性,构建 remote 应用时继承 plugins、modules 相关类型,修复 prebundle library 引用
  • 优化 PreBundle 特性,在失败时提示错误,并自动跳过继续执行编译任务

Type

  • 支持 vue3 custom element 原生参数 by @agileago
  • 修复 View 组件 catchMove 缺失错误 fix #12686
  • 修复getOpenUserInfo 返回结果类型错误 by @TaksonyL
  • 补充 downloadFile 方法 timeout 字段 by @Cookeke
  • 支持 native-slot 组件类型
  • 优化自动同步脚本,同步各端已知独有的组件类型

Release/2.2.19

03 Nov 07:38
64d5784
Compare
Choose a tag to compare

这个 PR 做了什么? (简要描述所做更改)

修复

这个 PR 是什么类型? (至少选择一个)

  • 错误修复(Bugfix) issue: fix #
  • 新功能(Feature)
  • 代码重构(Refactor)
  • TypeScript 类型定义修改(Typings)
  • 文档修改(Docs)
  • 代码风格更新(Code style update)
  • 其他,请描述(Other, please describe):

这个 PR 涉及以下平台:

  • 所有小程序
  • 微信小程序
  • 支付宝小程序
  • 百度小程序
  • 字节跳动小程序
  • QQ 轻应用
  • 京东小程序
  • 快应用平台(QuickApp)
  • Web 平台(H5)
  • 移动端(React-Native)

chore(release): publish 3.5.7

19 Oct 03:26
5fedb20
Compare
Choose a tag to compare

特性

H5

  • 新增兼容 getLaunchOptionsSyncgetEnterOptionsSync API
  • 新增监听各 API、组件不支持状态抛出事件

修复

小程序

  • Promise 化字节小程序的 getUserProfile API,#12612,by @TheKonka
  • 支持支付宝小程序的 Camera 组件,#12442,by @TheKonka
  • 修复 App 没有触发首次 componentDidShow 系列生命周期的问题,#12634,by @Barrierml
  • 修复自动为数字类型的 CSS 变量与部分属性(如: animation-iteration-count)自动添加 px 后缀的问题,#12617,by @Barrierml
  • 修复 PReact 压缩后属性设置不生效的问题,#12589,by @wenshin
  • 微信小程序反向转换功能兼容以 kebab-case 命名的 triggerEvent 事件名,by @campcc
  • 修复预渲染报错的问题,#12622
  • 支持 PayButtonConsumeCard 组件,#12650
  • 修复 tmpl_0_view not found 警告,#12558
  • 修复小程序插件编译报错,支持插件页面的 onLoadonUnload 生命周期,#12603
  • 修复编译为原生组件时不支持使用小程序 slot 组件的问题 ,#11865

H5

  • 修复 onLaunch 参数的数据结构与小程序的不一致的问题,#12387,by @yoyo837
  • 修复 request API 与小程序的网络请求处理不一致的问题,#9983,by @yoyo837
  • 修复当 postcss-pxtransform 计算为 0 时不支持在 calc 表达式使用的问题,#12607,by @yoyo837
  • 修复 canvasContextcreateLinearGradient 循环调用的问题,by @hisanshao
  • 修复开启多页模式时 devServer 初始页未正常打开的问题,#12582,by @biorz
  • 修复 downloadFileuploadFile API 跨域失败的问题,#12520,by @TheKonka
  • 优化 MovableView 组件,#12319
  • 优化 h5Plugin 获取 pxtransform 参数缺失问题
  • 优化 mode 判断,支持使用不同环境的 prebundle 特性

babel-preset-taro

  • 优先探测用户的 browserslist 配置, 如果没有才设置 @babel/preset-envtargets 配置,by @yoyo837

RN

  • 使 react-native-svg 包变为可选依赖,#12637

Typings

  • 同步小程序组件类型,by @robinv8
  • 修复支付宝组件同步类型错误覆盖问题,#12551
  • 优化 complie 类型和相关 hooks 声明