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后 所有事件都被编译成 bindxxx="eh" #8074

Closed
lxfljw opened this issue Nov 18, 2020 · 11 comments
Closed

升级taro3后 所有事件都被编译成 bindxxx="eh" #8074

lxfljw opened this issue Nov 18, 2020 · 11 comments
Labels
F-react Framework - React T-weapp Target - 编译到微信小程序 V-3 Version - 3.x

Comments

@lxfljw
Copy link

lxfljw commented Nov 18, 2020

相关平台

微信小程序

小程序基础库: 2.14
使用框架: React

复现步骤

taro3直接编译后的小程序代码(开发模式) 每个节点都加上了事件bindanimationend="eh" bindanimationstart="eh"等等

期望结果

期望只有声明的事件才添加上去 不要每个节点都添加无用事件

实际结果

bindanimationend="eh" bindanimationstart="eh"等等

环境信息

� Taro v3.0.16


  Taro CLI 3.0.16 environment info:
    System:
      OS: Windows 10
    Binaries:
      Node: 12.18.0 - D:\nodejs\node.EXE
      Yarn: 1.16.0 - ~\AppData\Roaming\npm\yarn.CMD
      npm: 6.14.4 - D:\nodejs\npm.CMD
@taro-bot2 taro-bot2 bot added F-react Framework - React T-weapp Target - 编译到微信小程序 V-3 Version - 3.x labels Nov 18, 2020
@saint3347
Copy link

同问
image

@Chen-jj
Copy link
Contributor

Chen-jj commented Nov 20, 2020

@wangzhigang
Copy link

同问 taro3直接编译后的小程序代码(开发模式) 每个节点都加上了事件bindanimationend="eh" bindanimationstart="eh"等等
期望只有声明的事件才添加上去 不要每个节点都添加无用事件

@wangzhigang
Copy link

问题没解决,怎么就关闭了呢

@lxfljw
Copy link
Author

lxfljw commented Jan 4, 2022

最大的两个问题:1. 每个节点加上了很多无用事件 2. 自定义 data- 这种属性无法使用 还要另外加插件各种配置,这个问题在于使用 wxml2canvas 这个大佬的开源绘制海报库 由于小程序无法读取节点文本 只能通过data-方式 现在去掉了 接入这种类型的库实在难受,求大佬重视 现在无奈只能用原生混合taro写 实话上Taro肯定优于原生太多 所以希望官方支持

@wangzhigang
Copy link

求大佬重视

@wangzhigang
Copy link

重点是很多无用事件,做事件埋点的时候,尤其是做无痕埋点考虑的时候,没办法区分是手动绑定的事件,还是没有绑定事件的元素。

@Chen-jj
Copy link
Contributor

Chen-jj commented Jan 5, 2022

@wangzhigang 不是已经贴上文档链接了么。。

@Chen-jj
Copy link
Contributor

Chen-jj commented Jan 5, 2022

最大的两个问题:1. 每个节点加上了很多无用事件 2. 自定义 data- 这种属性无法使用 还要另外加插件各种配置,这个问题在于使用 wxml2canvas 这个大佬的开源绘制海报库 由于小程序无法读取节点文本 只能通过data-方式 现在去掉了 接入这种类型的库实在难受,求大佬重视 现在无奈只能用原生混合taro写 实话上Taro肯定优于原生太多 所以希望官方支持

@lxfljw 关于在模板中添加 dataset,文档也是有写的:https://docs.taro.zone/docs/react-overall#dataset

@lxfljw
Copy link
Author

lxfljw commented Jan 5, 2022

最大的两个问题:1. 每个节点加上了很多无用事件 2. 自定义 data- 这种属性无法使用 还要另外加插件各种配置,这个问题在于使用 wxml2canvas 这个大佬的开源绘制海报库 由于小程序无法读取节点文本 只能通过data-方式 现在去掉了 接入这种类型的库实在难受,求大佬重视 现在无奈只能用原生混合taro写 实话上Taro肯定优于原生太多 所以希望官方支持

@lxfljw 关于在模板中添加 dataset,文档也是有写的:https://docs.taro.zone/docs/react-overall#dataset

感谢大佬抽空回答,之前尝试过这个插件,但是注册这个插件后,Taro.request 这个方法会报错 undefined,目前还不知道原因,去掉插件后就可以。其实是建议类似data- 这种属性能原样复制到小程序组件上

@Chen-jj
Copy link
Contributor

Chen-jj commented Jan 5, 2022

@lxfljw inject 这个插件之前修了下,应该可以了。

根本原因在文档链接中也说的很清楚了,Taro 3 是运行时框架,通过 base.wxml 中的 template 拼接去完成渲染。和 Taro 1、2 的编译时框架不一样,它不会做静态代码分析去分析开发者的节点属性,然后把这些属性添加到 template 上。只能把所有属性都列出来(因为不知道开发者会用到什么属性)。

因此,只能让开发者自行通过端平台插件,根据哪些组件需要哪些属性修改 template。但开发者需要付出维护困难的代价。(开发者知道会用到什么属性,但团队人员越来越多就很难说了)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
F-react Framework - React T-weapp Target - 编译到微信小程序 V-3 Version - 3.x
Projects
None yet
Development

No branches or pull requests

4 participants