You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
距 Taro v3.4 beta 版本的发布已有一段时间,期间我们完善了对 Preact 和 Vue3 的支持,加入了一些有趣的特性,更是对 H5 作了大幅度的优化与调整,并于近期发布了 v3.4 的正式版本。
一、支持使用 Preact
开发小程序应用时我们经常会受到包体积的掣肘,大型应用常常为了“尺土寸金”的包体积开展瘦身行动。在此背景下 React 将近 100k 的体积则显得有点过于奢侈。因此 Taro v3.4 实现了对 Preact 的支持,仅需少量配置即可从 React 切换到 Preact,有效地降低了包体积。
适配思路与具体用法请参阅 《Taro v3.4 发布 beta 版本 —— 支持使用 Preact 进行开发》
二、更好地支持 Vue 3.2
1. 支持 Composition API 版本的小程序生命周期钩子
Vue 3.2 正式推出了 script setup 语法,过去 Taro 的 Options 式小程序生命周期钩子难以配合 script setup 语法进行使用。因此 Taro v3.4 提供了 Composition API 版本的小程序生命周期钩子,方便开发者配合 setup 语法组织和复用代码逻辑。
例子:
2. 支持
<style> v-bind
语法Vue 3.2 的
<style> v-bind
语法让我们可以对样式进行数据绑定。它的实现使用了 DOM 的 MutationObserver API,但之前 Taro DOM 没有模拟实现此 API,因此使用<style> v-bind
时会报错。感谢 @b2nil 同学,参照 worker-dom 为 Taro DOM 实现了
MutationObserver
API,让我们可以使用<style> v-bind
语法。3. 暴露 VueLoader 的配置
开发者有时需要修改 VueLoader 的配置,例如使用小程序原生组件时需要配置
compilerOptions.isCustomElement
。以往开发者只能通过WebpackChain
去修改,Taro v3.4 暴露了 VueLoader 的配置,让开发者可以更方便地进行修改。三、H5
1. 自定义多路由配置
Taro-H5 过去并不支持多路由访问同一个页面实例的操作,即便通过自定义路由配置也并不能在多个路由中访问同一个页面。
因此 Taro-H5 提供了自定义多路由配置的参数,供开发者根据需求自行配置。
2. 路由动画 by @ShaoGongBra
Taro-H5 支持了路由动画,开发者可以通过配置
app.config.js
来控制页面的动画效果,也可以通过覆盖 CSS 样式来调整动画。当然一些场景下,比如页面需要使用position: fixed;
会因为translate3d
影响实际效果,可以将动画禁用。3. dynamic-import-node
Taro-H5 打包时会将页面和组件拆分成独立的文件按需加载,但这么做会导致没有用到的页面和组件依旧会被打包,导致编译体积变大,在一些特殊场景中(比如 PWA 等需要严格限制包体大小时)会因此受到不小的困扰。
所以我们通过 babel 插件提供了移除懒加载的方法:
四、新增 defineAppConfig 与 definePageConfig 编译宏
defineAppConfig
开发者可以使用
defineAppConfig
包裹 App 配置对象,以获得全局配置的类型提示和自动补全,如:definePageConfig
使用
definePageConfig
包裹 Page 配置对象,同样可以获得页面配置的类型提示和自动补全,如:除此之外,开发者可以不提供页面的配置文件,直接在页面逻辑文件中使用
definePageConfig
定义页面配置。如在 React 中:
在 Vue 中:
五、其它重要特性与优化
性能
eventSource
导致的内存泄漏的问题,相关 commit。CustomWrapper
嵌套使用后失效的问题,感谢 @CS-Tao 的贡献。特性
pageId
中,同时TabBar
页面不会重新创建重复节点。entryPagePath
参数,by @liuchuzhangCoverView
&CoverImage
组件,by @jiaozitangNodesRef.context
&NodesRef.node
方法useResize
方法监听resize
事件修复
id
而导致事件触发失效的问题。六、Breaking Changes
onInit
代替onLoad
生命周期,以优化首次启动时间。升级指南
1. 把 Taro CLI 更新到
v3.4.0
:2. 更新项目依赖
修改
package.json
文件中 Taro 相关依赖的版本修改为3.4.0
,再重新安装依赖。3.【Breaking Changes】安装对应的框架适配插件
因为 Taro v3.4 把各前端框架的适配逻辑拆分到对应的插件中,因此旧项目升级时需要安装对应框架的适配插件:
@tarojs/plugin-framework-react
@tarojs/plugin-framework-vue2
@tarojs/plugin-framework-vue3
最后
接下来 Taro v3.6 的工作重心将会放在小程序性能优化、编译系统升级(如升级 Webpack5)和优化 H5 能力(如输出 SSR 方案、优化路由系统等)上。
Taro 迭代的另一条主线是对 鸿蒙应用 && OpenHarmony 的适配,Taro 与 OpenHarmony 团队成立了跨平台 UI 兴趣组,将联合社区共同展开适配工作。目前第一阶段的开发工作已完成,并发布了 Taro v3.5-canary 版本。
相关咨询:
鸿蒙 & OpenHarmony 交流群:
最后,衷心感谢参与了 Taro 开源共建的各位同学,也欢迎更多的同学参与进来!
Beta Was this translation helpful? Give feedback.
All reactions