Taro 正式发布 3.1 版本:面向定制化的小程序开发 #8935
honlyHuang
started this conversation in
官方公告
Replies: 1 comment
-
|
perfect! |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
自 Taro 3.1 体验版推出后,我们不断地根据社区的反馈意见对 3.1 版本进行打磨。主要改进了开放式架构、引入了
CustomWrapper组件以解决性能问题、提出了原生小程序渐进式混合使用 Taro 的解决方案。经历了 12 个 beta 版本后,终于迎来了 3.1 正式版🎉
一、Highlights
1. 开放式架构
近年来业界推出的小程序平台越来越多,但 Taro 核心维护的平台只有 6 个,因此常常有同学提出能不能支持某某平台的 Feature Request。
基于目前的架构,支持一个新的平台开发复杂度高,同时社区也难以参与贡献。
为此我们把 Taro 打造成为一个开放式框架,通过端平台插件能支持任意小程序平台:
基于开放式架构,我们新增了一些有趣的插件,也十分期待大家利用它施展创意。
新增的插件:
2. 新增小程序性能优化组件 CustomWrapper
Taro3 使用
<template>进行渲染,所有的setData都由页面对象调用。如果页面结构比较复杂,应用更新的性能就会下降。为此我们引入了一个基础组件
CustomWrapper,它的作用是创建一个原生自定义组件。对后代节点的setData将由此自定义组件进行调用,达到局部更新的效果,从而提升更新性能。开发者可以使用
CustomWrapper去包裹遇到更新性能问题的组件:3. 原生小程序渐进式混合使用 Taro 开发
过去我们对在 Taro 项目中混合使用原生的支持度较高。相反地,对在原生项目中混合使用 Taro 却没有太重视。但是市面上有着存量的原生开发小程序,他们接入 Taro 开发的改造成本往往非常大,最后只得放弃混合开发的想法。
经过与京喜拼拼项目的合作,也驱使了我们更加关注这部分需求。Taro 推出了一套完整的原生项目混合使用 Taro 的方案。
方案主要支持了三种场景:
希望以上方案能满足打算逐步接入 Taro 开发的同学。更多意见也欢迎在 Github 上给我们留言。
4. 拥抱 React 17、TypeScript 4
4.1. 使用方法
新项目:
模板默认依赖 React 17、TypeScript 4,可以直接使用。
旧项目:
手动升级项目依赖:
react: ^17.0.0react-dom: ^17.0.0typescript: ^4.1.0@typescript-eslint/parser: ^4.15.1@typescript-eslint/eslint-plugin: ^4.15.1设置 ESLint 配置:
4.2. React 默认支持 New JSX Transform
New JSX Transform 让开发者不再需要在书写 JSX 前先引入 React。
如果不希望打开此功能,可以修改 Babel 配置的
reactJsxRuntime选项为classes:4.3. React H5 端默认开启 fast-refresh
如果不希望打开此功能,可以修改 Taro 配置和 Babel 配置:
二、Breakings
1. React
项目的 React 版本必须 >= 16.14.0,或使用 17.0.0+
2. Vue2
用户编写的入口组件需要修改如下:
3. Linaria
使用
Linaria时,需要修改linaria.config.js的内容。三、特性
View增加catchMove属性,解决滚动穿透问题。四、问题修复
1. 重要
2. 小程序
extension配置解析的问题,[Taro 3] Webpack 建议使用 resolve.extensions 替换 MultiPlatformPlugin #6786,taro3.0.5版用vue开发进行多端处理组件文件异常 #7265 。3. H5
App.onPageNotFound,Taro 3.0.8 H5路由未找不触发componentDidNotFound #7474。slot兼容问题,@tarojs/components 的组件Form 内部的Input显示隐藏报错Failed to execute 'removeChild' on 'Node' #7363。View和Text组件多行截断样式失败问题,Text设置 webkit-line-clamp 及text-overflow 后在H5 里出现渲染异常 #7472 [Taro Next rc.5] Text 文字溢出省略 表现异常 #6741。style属性支持设置 CSS 变量,view标签上的style属性只能生成常规属性,var()函数可用属性无法生成,如"--main-color: #ff01cd" #7452。五、升级指南
从 v3.x 升级的同学,首先需要安装 v3.1 的 CLI 工具:
然后进入项目,删除 node_modules、yarn.lock、package-lock.json。
最后把
package.json文件中 Taro 相关依赖的版本修改为^3.1.0,再重新安装依赖。至此升级结束。六、未来规划
得益于 58 技术团队 的全力支持,Taro 3 即将支持 React Native,现已推出 3.2.0 的 Beta 版本,3.2.0 正式版将于本月底推出。欢迎抢先体验:《增加 React Native 支持的 Taro 3.2.0 版本测试通告》
七、感谢
开源不易,贵在坚持。Taro 团队衷心感谢各位参与过本项目开源建设的朋友,无论是为 Taro 提交过代码、建设周边生态,还是反馈过问题,甚至只是茶余饭后讨论、吐槽 Taro 的各位。
现诚挚邀请您与 Taro 官方团队交流您的使用情况,有你相伴,Taro更加精彩!问卷地址
最后,特别感谢为 Taro 从 v3.0 走到 v3.1 贡献过代码的各位同学,不分先后:
Beta Was this translation helpful? Give feedback.
All reactions