The Wayback Machine - https://web.archive.org/web/20201113174410/https://github.com/NervJS/taro/issues/2959
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

Taro能使用wxs吗? #2959

Open
Rychou opened this issue May 6, 2019 · 26 comments
Open

Taro能使用wxs吗? #2959

Rychou opened this issue May 6, 2019 · 26 comments
Assignees

Comments

@Rychou
Copy link

@Rychou Rychou commented May 6, 2019

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

@taro-bot
Copy link

@taro-bot taro-bot bot commented May 6, 2019

欢迎提交 Issue~

如果你提交的是 bug 报告,请务必遵循 Issue 模板的规范,尽量用简洁的语言描述你的问题,最好能提供一个稳定简单的复现。🙏🙏🙏

如果你的信息提供过于模糊或不足,或者已经其他 issue 已经存在相关内容,你的 issue 有可能会被关闭。

Good luck and happy coding~

@luckyadam
Copy link
Contributor

@luckyadam luckyadam commented May 6, 2019

频繁 setState 来更新可以通过加节流来尝试解决

@Rychou
Copy link
Author

@Rychou Rychou commented May 6, 2019

频繁 setState 来更新可以通过加节流来尝试解决

movable-view这种需要即时更新坐标信息的也能节流吗?

@Miantang
Copy link

@Miantang Miantang commented May 6, 2019

试过节流,这样动画掉帧十分厉害

@Rychou
Copy link
Author

@Rychou Rychou commented May 6, 2019

试过节流,这样动画掉帧十分厉害

目前打算在Taro编译之后,自己在小程序开发者工具中写wxs代码

@yuche yuche added the resolved label May 6, 2019
@taro-bot taro-bot bot added the to be closed label May 6, 2019
@taro-bot
Copy link

@taro-bot taro-bot bot commented May 6, 2019

Hello~

您的问题楼上已经提供了解决方案,如果没有更多的问题这个 issue 将在 15 天后被自动关闭。

如果您在这 15 天中更新更多信息自动关闭的流程会自动取消,如有其他问题也可以发起新的 Issue。

Good luck and happy coding~

@Miantang
Copy link

@Miantang Miantang commented May 7, 2019

试过节流,这样动画掉帧十分厉害

目前打算在Taro编译之后,自己在小程序开发者工具中写wxs代码

这样就很恶心了,每次编译都要重新修改dist文件。

@Miantang
Copy link

@Miantang Miantang commented May 7, 2019

频繁 setState 来更新可以通过加节流来尝试解决

没有计划支持wxs的么?对于一些性能要求高的交互场景,只能通过wxs避免 逻辑线程和视图线程的频繁通信损耗

@Rychou
Copy link
Author

@Rychou Rychou commented May 7, 2019

试过节流,这样动画掉帧十分厉害

目前打算在Taro编译之后,自己在小程序开发者工具中写wxs代码

这样就很恶心了,每次编译都要重新修改dist文件。

那倒不用,在dist下面添加个.wxs的文件,重新编译文件还在的。
我昨天用wxs优化了,晚点写个文章总结一下好了。不过最好还是Taro自己支持wxs

@Miantang
Copy link

@Miantang Miantang commented May 7, 2019

试过节流,这样动画掉帧十分厉害

目前打算在Taro编译之后,自己在小程序开发者工具中写wxs代码

这样就很恶心了,每次编译都要重新修改dist文件。

那倒不用,在dist下面添加个.wxs的文件,重新编译文件还在的。
我昨天用wxs优化了,晚点写个文章总结一下好了。不过最好还是Taro自己支持wxs

wxs是在,但是你是还是需要去修改引用它的wxml吧?难道把wxs组件写在taro的jsx中吗

@Rychou
Copy link
Author

@Rychou Rychou commented May 7, 2019

试过节流,这样动画掉帧十分厉害

目前打算在Taro编译之后,自己在小程序开发者工具中写wxs代码

这样就很恶心了,每次编译都要重新修改dist文件。

那倒不用,在dist下面添加个.wxs的文件,重新编译文件还在的。
我昨天用wxs优化了,晚点写个文章总结一下好了。不过最好还是Taro自己支持wxs

wxs是在,但是你是还是需要去修改引用它的wxml吧?难道把wxs组件写在taro的jsx中吗

@luckyadam
试过了,可以不修改wxml。晚点总结了后发文章到时候给你链接吧。不过这里还是希望Taro能支持wxs

@Rychou
Copy link
Author

@Rychou Rychou commented May 8, 2019

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

@luckyadam
Copy link
Contributor

@luckyadam luckyadam commented May 8, 2019

@Rychou 这个优化很棒啊,我们看一下如何支持一下

不过,这里是不是也可以不用 wxs,直接把这个方法写到类里不行么

@luckyadam luckyadam added enhancement and removed resolved labels May 8, 2019
@Rychou
Copy link
Author

@Rychou Rychou commented May 8, 2019

@Rychou 这个优化很棒啊,我们看一下如何支持一下

不过,这里是不是也可以不用 wxs,直接把这个方法写到类里不行么

写在类里面同样得用setState和节点内联样式与state绑定来修改样式,这样没办法减少数据传输经过的路径。小程序应该无法直接在JS中修改节点的样式。

@Chen-jj
Copy link
Contributor

@Chen-jj Chen-jj commented May 9, 2019

@Rychou 老哥我看了你的文章,总结得很好,这种情况使用 WXS 做 computed 的确有帮助。

Taro 中使用 WXS 响应事件,现在即可按你的步骤在 Taro 正常开发流中使用。有一点建议的是,.wxs 文件不需要手动放在 dist 文件夹下,可以正常放 src 内,配置项目的 copy 配置项即可。

image

而使用 WXS 处理数据暂时还不支持,需要编译时做一些处理。

@Rychou
Copy link
Author

@Rychou Rychou commented May 9, 2019

@Chen-jj

谢谢提醒😁
我在wxs还遇到调用自定义方法的情景,如果直接按照官网的方法使用,是不行的。奇怪的是在组件随便写个事件绑定了那个方法后就可以使用了。

@goodwinfame
Copy link

@goodwinfame goodwinfame commented May 27, 2019

@Rychou 请问一下,使用wxs操作组件时能拿到组件的style吗?我看文档只有setStyle方法没有getStyle方法,那么组件的上一次位置等信息是否只能自己维护,从组件本身获取不到?

@Rychou
Copy link
Author

@Rychou Rychou commented May 27, 2019

@Rychou 请问一下,使用wxs操作组件时能拿到组件的style吗?我看文档只有setStyle方法没有getStyle方法,那么组件的上一次位置等信息是否只能自己维护,从组件本身获取不到?

获取组件的位置信息可以使用wxs的callMethod搭配selectorQuery使用

参考:https://developers.weixin.qq.com/miniprogram/dev/api/wxml/wx.createSelectorQuery.html

@Chen-jj Chen-jj self-assigned this Jun 4, 2019
@yf287
Copy link

@yf287 yf287 commented Jun 10, 2019

@Rychou 老哥我看了你的文章,总结得很好,这种情况使用 WXS 做 computed 的确有帮助。

Taro 中使用 WXS 响应事件,现在即可按你的步骤在 Taro 正常开发流中使用。有一点建议的是,.wxs 文件不需要手动放在 dist 文件夹下,可以正常放 src 内,配置项目的 copy 配置项即可。

image

而使用 WXS 处理数据暂时还不支持,需要编译时做一些处理。

感觉这样不太合适。。毕竟多端框架,这样的操作意味着用户要不只开发微信小程序,要不就在每次引用的时候区分当前端,比较期待能做编译阶段的处理

@StarGrin
Copy link

@StarGrin StarGrin commented Nov 5, 2019

我能随便说说嘛

@bobsam
Copy link

@bobsam bobsam commented Nov 20, 2019

请问wxs的支持计划有了吗? @Rychou @Chen-jj

@Rychou
Copy link
Author

@Rychou Rychou commented Nov 25, 2019

请问wxs的支持计划有了吗? @Rychou @Chen-jj

这块不知道Taro那边的计划,我之前是按照上述说明的那些步骤使用的。

@wadesdead
Copy link

@wadesdead wadesdead commented Dec 20, 2019

@[]()

@rohanpaudel
Copy link

@rohanpaudel rohanpaudel commented Dec 21, 2019

试过节流,这样动画掉帧十分厉害
目前打算在Taro编译之后,自己在小程序开发者工具中写wxs代码
这样就很恶心了,每次编译都要重新修改dist文件。
那倒不用,在dist下面添加个.wxs的文件,重新编译文件还在的。
我昨天用wxs优化了,晚点写个文章总结一下好了。不过最好还是Taro自己支持wxs
wxs是在,但是你是还是需要去修改引用它的wxml吧?难道把wxs组件写在taro的jsx中吗

@xiao252
Copy link

@xiao252 xiao252 commented Jul 21, 2020

Taro3这样使用似乎行不通?报错Template `tmpl_2_wxs` not found.

@j78742
Copy link

@j78742 j78742 commented Oct 14, 2020

Taro3这样使用似乎行不通?报错Template `tmpl_2_wxs` not found.

有解决吗

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
You can’t perform that action at this time.