Taro: Taro能使用wxs吗?

Created on 6 May 2019  ·  31Comments  ·  Source: NervJS/taro

问题描述
最近使用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

enhancement good first issue

Most helpful comment

@Miantang 小程序Android端movable-view拖拽卡顿掉帧的优化可以参考一下,不过最好还是Taro能够支持WXS的编程。

All 31 comments

欢迎提交 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自己支持wxs

wxs是在,但是你是还是需要去修改引用它的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 配置项即可。

image

而使用 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 配置项即可。

image

而使用 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

Was this page helpful?
0 / 5 - 0 ratings

Related issues

liuchuzhang picture liuchuzhang  ·  3Comments

zhuxianguo picture zhuxianguo  ·  3Comments

fuyue111 picture fuyue111  ·  3Comments

fxy5869571 picture fxy5869571  ·  3Comments

GreatAuk picture GreatAuk  ·  3Comments