Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

taro3的列表页面 DOM数量提示超过1000,不支持#shadow-root,导致点击事件延迟 #8211

Closed
xiaoice opened this issue Dec 7, 2020 · 9 comments · Fixed by #8276, #8285, #8290 or #8305
Labels
enhancement New feature or request P-1 High, patch
Milestone

Comments

@xiaoice
Copy link

xiaoice commented Dec 7, 2020

这个特性解决了什么问题?

taro2的DOM结构简单,也支持shadow-root,点击事件不会卡顿,taro3长列表点击事件有延迟

这个 API 长什么样?

如何让taro3长列表点击事件不再延迟?如何像taro2一样开启支持#shadow-root呢

@taro-bot2 taro-bot2 bot added the enhancement New feature or request label Dec 7, 2020
@Chen-jj
Copy link
Contributor

Chen-jj commented Dec 7, 2020

项目配置中配置一下 baseLevel,把层级降低一点试试

@xiaoice
Copy link
Author

xiaoice commented Dec 7, 2020

感谢大佬回复,有用,性能会好很多,不过降低了baseLevel的时候,不过有个新的小问题,
更深层级的《Text>标签,会被替换成 《comp is="comp"> #shadow-root 文本《/comp> 导致里面的样式丢失,这种有没有好的处理方案

@Chen-jj
Copy link
Contributor

Chen-jj commented Dec 7, 2020

尴尬了,是有这个 issue,而当时的解决办法是扩大 baseLevel。。我这周跟进一下

@Chen-jj Chen-jj added the P-1 High, patch label Dec 7, 2020
@taro-bot2 taro-bot2 bot added this to the 3.0.19 milestone Dec 7, 2020
@xiaoice
Copy link
Author

xiaoice commented Dec 7, 2020

大佬给力,我们从taro2升级到taro3后还发现2个性能方面的问题
1、taro3生成的view会带上bindanimationend="eh" bindanimationend="eh" bindanimationstart="eh"等属性,taro-next源代码对应的路径在packages\shared\src\components.ts文件里,查阅社区的解决方案是自己实现插件,短时间不知道怎么写这种插件,有没有DEMO可以参考,想试试移除冗余数据看看对性能不会更好
2、React版本长列表渲染(虚拟列表)VirtualList目前固定了itemSize={number} /* 列表单项的高度 */,后期会不会增加非固定高度的解决方案呢,或者我们自己去扩展这个,能否指点下最佳实现方案

@xiaoice
Copy link
Author

xiaoice commented Dec 7, 2020

大佬请教下,假如我想为某一个自定义组件添加#shadow-root,避开固定的baseLevel层级关系,能否支持这种特性

@tourze
Copy link
Contributor

tourze commented Dec 9, 2020

大佬请教下,假如我想为某一个自定义组件添加#shadow-root,避开固定的baseLevel层级关系,能否支持这种特性

+1

@Chen-jj
Copy link
Contributor

Chen-jj commented Dec 19, 2020

  1. 深层级 Text 内文本丢失的问题,3.0.19 解决
  2. 冗余事件的问题,3.0.19 会为 ViewTextImage 组件做优化
  3. VirtualList 不定高 3.0.20 支持
  4. 3.0.20 支持使用 CustomWrapper 组件显式创建小程序的自定义组件,解决低端机层级过深卡顿问题。但需要注意:
    • H5 未兼容此组件。
    • querySelector API 取自定义组件内的后代时需要这样取:.parent >>> .child
    • 类似 createCanvasContext 等需要传入自定义组件作为上下文的 API,暂时未有办法取到 CustomWrapper 对应的自定义组件的 this
    • 用法:

image

@xiaoice
Copy link
Author

xiaoice commented Dec 21, 2020

大佬给力!!!

@xiaoice
Copy link
Author

xiaoice commented Dec 21, 2020

试了下CustomWrapper很好用,后期是否考虑支持className基础属性,类似普通标签View

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment