问题描述
最近使用movable-view做了一个拖拽排序的功能,但是由于需要touchmove事件频繁setState来更新movable-view的坐标,导致Android的上的性能体验很差,IOS不会。
看了微信的文档,这种情况可以使用WXS来解决,请问Taro中能否使用WXS?如何使用呢?
参考文档: https://developers.weixin.qq.com/miniprogram/dev/framework/view/interactive-animation.html
https://developers.weixin.qq.com/miniprogram/dev/framework/performance/tips.html
欢迎提交 Issue~
如果你提交的是 bug 报告,请务必遵循 Issue 模板的规范,尽量用简洁的语言描述你的问题,最好能提供一个稳定简单的复现。🙏🙏🙏
如果你的信息提供过于模糊或不足,或者已经其他 issue 已经存在相关内容,你的 issue 有可能会被关闭。
Good luck and happy coding~
频繁 setState 来更新可以通过加节流来尝试解决
频繁 setState 来更新可以通过加节流来尝试解决
movable-view这种需要即时更新坐标信息的也能节流吗?
试过节流,这样动画掉帧十分厉害
试过节流,这样动画掉帧十分厉害
目前打算在Taro编译之后,自己在小程序开发者工具中写wxs代码
Hello~
您的问题楼上已经提供了解决方案,如果没有更多的问题这个 issue 将在 15 天后被自动关闭。
如果您在这 15 天中更新更多信息自动关闭的流程会自动取消,如有其他问题也可以发起新的 Issue。
Good luck and happy coding~
试过节流,这样动画掉帧十分厉害
目前打算在Taro编译之后,自己在小程序开发者工具中写wxs代码
这样就很恶心了,每次编译都要重新修改dist文件。
频繁 setState 来更新可以通过加节流来尝试解决
没有计划支持wxs的么?对于一些性能要求高的交互场景,只能通过wxs避免 逻辑线程和视图线程的频繁通信损耗
试过节流,这样动画掉帧十分厉害
目前打算在Taro编译之后,自己在小程序开发者工具中写wxs代码
这样就很恶心了,每次编译都要重新修改dist文件。
那倒不用,在dist下面添加个.wxs的文件,重新编译文件还在的。
我昨天用wxs优化了,晚点写个文章总结一下好了。不过最好还是Taro自己支持wxs
试过节流,这样动画掉帧十分厉害
目前打算在Taro编译之后,自己在小程序开发者工具中写wxs代码
这样就很恶心了,每次编译都要重新修改dist文件。
那倒不用,在dist下面添加个.wxs的文件,重新编译文件还在的。
我昨天用wxs优化了,晚点写个文章总结一下好了。不过最好还是Taro自己支持wxs
wxs是在,但是你是还是需要去修改引用它的wxml吧?难道把wxs组件写在taro的jsx中吗
试过节流,这样动画掉帧十分厉害
目前打算在Taro编译之后,自己在小程序开发者工具中写wxs代码
这样就很恶心了,每次编译都要重新修改dist文件。
那倒不用,在dist下面添加个.wxs的文件,重新编译文件还在的。
我昨天用wxs优化了,晚点写个文章总结一下好了。不过最好还是Taro自己支持wxswxs是在,但是你是还是需要去修改引用它的wxml吧?难道把wxs组件写在taro的jsx中吗
@luckyadam
试过了,可以不修改wxml。晚点总结了后发文章到时候给你链接吧。不过这里还是希望Taro能支持wxs
@Miantang 小程序Android端movable-view拖拽卡顿掉帧的优化可以参考一下,不过最好还是Taro能够支持WXS的编程。
@Rychou 这个优化很棒啊,我们看一下如何支持一下
不过,这里是不是也可以不用 wxs,直接把这个方法写到类里不行么
@Rychou 这个优化很棒啊,我们看一下如何支持一下
不过,这里是不是也可以不用 wxs,直接把这个方法写到类里不行么
写在类里面同样得用setState和节点内联样式与state绑定来修改样式,这样没办法减少数据传输经过的路径。小程序应该无法直接在JS中修改节点的样式。
@Rychou 老哥我看了你的文章,总结得很好,这种情况使用 WXS 做 computed 的确有帮助。
Taro 中使用 WXS 响应事件,现在即可按你的步骤在 Taro 正常开发流中使用。有一点建议的是,.wxs 文件不需要手动放在 dist 文件夹下,可以正常放 src 内,配置项目的 copy 配置项即可。

而使用 WXS 处理数据暂时还不支持,需要编译时做一些处理。
@Chen-jj
谢谢提醒😁。
我在wxs还遇到调用自定义方法的情景,如果直接按照官网的方法使用,是不行的。奇怪的是在组件随便写个事件绑定了那个方法后就可以使用了。

@Rychou 请问一下,使用wxs操作组件时能拿到组件的style吗?我看文档只有setStyle方法没有getStyle方法,那么组件的上一次位置等信息是否只能自己维护,从组件本身获取不到?
@Rychou 请问一下,使用wxs操作组件时能拿到组件的style吗?我看文档只有setStyle方法没有getStyle方法,那么组件的上一次位置等信息是否只能自己维护,从组件本身获取不到?
获取组件的位置信息可以使用wxs的callMethod搭配selectorQuery使用
参考:https://developers.weixin.qq.com/miniprogram/dev/api/wxml/wx.createSelectorQuery.html
@Rychou 老哥我看了你的文章,总结得很好,这种情况使用 WXS 做 computed 的确有帮助。
Taro 中使用 WXS 响应事件,现在即可按你的步骤在 Taro 正常开发流中使用。有一点建议的是,.wxs 文件不需要手动放在 dist 文件夹下,可以正常放 src 内,配置项目的 copy 配置项即可。
而使用 WXS 处理数据暂时还不支持,需要编译时做一些处理。
感觉这样不太合适。。毕竟多端框架,这样的操作意味着用户要不只开发微信小程序,要不就在每次引用的时候区分当前端,比较期待能做编译阶段的处理
我能随便说说嘛
请问wxs的支持计划有了吗? @Rychou @Chen-jj
请问wxs的支持计划有了吗? @Rychou @Chen-jj
这块不知道Taro那边的计划,我之前是按照上述说明的那些步骤使用的。
试过节流,这样动画掉帧十分厉害
目前打算在Taro编译之后,自己在小程序开发者工具中写wxs代码
这样就很恶心了,每次编译都要重新修改dist文件。
那倒不用,在dist下面添加个.wxs的文件,重新编译文件还在的。
我昨天用wxs优化了,晚点写个文章总结一下好了。不过最好还是Taro自己支持wxs
wxs是在,但是你是还是需要去修改引用它的wxml吧?难道把wxs组件写在taro的jsx中吗
Taro3这样使用似乎行不通?报错Template `tmpl_2_wxs` not found.
Taro3这样使用似乎行不通?报错
Template `tmpl_2_wxs` not found.
有解决吗
Taro 3 有计划解决上面的报错吗?
Taro3这样使用似乎行不通?报错
Template `tmpl_2_wxs` not found.有解决吗
可以用小程序原生组件来搞定,就是显得特别扭
Taro3这样使用似乎行不通?报错
Template `tmpl_2_wxs` not found.有解决吗
可以用小程序原生组件来搞定,就是显得特别扭
是的,我目前就是这么干的,就是多写了一堆代码
快两年了,还没有解决这个问题么?uniapp好像自己实现了一套,不知道taro这方面为啥没啥动静的
关注+1
Most helpful comment
@Miantang 小程序Android端movable-view拖拽卡顿掉帧的优化可以参考一下,不过最好还是Taro能够支持WXS的编程。