QQ小程序下,Taro3 长列表复杂节点,卡顿明显。分页下拉几次后,就会闪退,应该是state data体积过大造成(vnode节点信息,比纯data信息大很多,setData传递数据时间较长)。
项目升级Taro3尝试效果不理想,考虑Taro3源码是否能像Taro1/2编译成原生小程序组件,这样升级完的代码就可以直接用。
Taro3源码结构是否能像Taro1/2编译成原生小程序组件?源码为Taro3 React方式,但仍提升运行时性能。
uujelgoq1#
试试 3.0.21 的 CustomWrapper 包裹更新卡顿的子树。
CustomWrapper
<Page> ... <CustomWrapper> <HeavyList></HeavyList> </CustomWrapper> </Page>
piwo6bdm2#
@Chen-jj 试了下,用CustomWrapper包裹后,变成了原生自定义组件,但仍然是通过vnode template模板递归解析的。本身AppData的数据体积并没有变小(taro3 appData体积是taro1的10倍多,小程序下渲染卡顿很明显,尤其是QQ小程序 Android平台,列表加载下一页时就闪退了)
JSON.stringify(appData).length // Taro3: 92089, vnode方式 // Taro1: 8948,data方式
ljsrvy3e3#
你怎么解决这个问题哈,有实现按Taro1/2编译吗
vecaoik14#
我编译完元素节点都不见了,真是奇怪,是不是百度也不支持哈
4条答案
按热度按时间uujelgoq1#
试试 3.0.21 的
CustomWrapper
包裹更新卡顿的子树。piwo6bdm2#
@Chen-jj 试了下,用CustomWrapper包裹后,变成了原生自定义组件,但仍然是通过vnode template模板递归解析的。本身AppData的数据体积并没有变小(taro3 appData体积是taro1的10倍多,小程序下渲染卡顿很明显,尤其是QQ小程序 Android平台,列表加载下一页时就闪退了)
ljsrvy3e3#
你怎么解决这个问题哈,有实现按Taro1/2编译吗
vecaoik14#
@Chen-jj 试了下,用CustomWrapper包裹后,变成了原生自定义组件,但仍然是通过vnode template模板递归解析的。本身AppData的数据体积并没有变小(taro3 appData体积是taro1的10倍多,小程序下渲染卡顿很明显,尤其是QQ小程序 Android平台,列表加载下一页时就闪退了)
我编译完元素节点都不见了,真是奇怪,是不是百度也不支持哈