图一:wxml文件中的touch事件绑定在js文件中,js文件中的对应的事件做出处理,然后修改x,y等相关的位置信息,并且渲染出来,问题在于:卡顿,原因:比如说js文件和wxml文件之间时通过一条管道进行通信的,那么在wxml文件触发touch事件时,开始向js文件传递数据,js接受到数据后进行处理,然后再传相关数据给wxml文件,这样一次touch事件就在这条管道中进行了两次传输,而touchmove事件的触发过于频繁,导致了管道堵塞,(塞车)。所以卡顿了
图二:通过微信给出的相关api,把wxml文件中的touch事件绑定到wxs文件中,然后再wxs文件中做出相应的修改,(修改样式),文档链接 这样做可以解决卡顿的问题,但是有个问题是,再wxs文件中修改的样式等级是最高的,也就是说通过wxs文件修改样式后,其他途径修改样式就行不通了,如果不实际情况允许的话,用这种方法做也是可以的。
图三:图三是把js,wxml,wxs三个文件形成一个圆环,wxml触发touch事件,把事件传递给wxs文件,wxs文件做相关处理,然后把结果传给js文件,js文件接收到数据后,再对wxml文件做相关的样式修改(通常都是修改x,y等值),这样既可以避免图一的卡顿,也可以避开图二的样式等级的问题,如果再在wxs文件中做相关节流的话,效果应该会更好,相关的操作,用到的api请点击这里 开发文档里面都有,就不11说明了
另外对于movable-view,我就不说, 一开始就是用的movable-view,问题多多,最后改用了图三的做法
第一次写文章,有问题的地方请多指教,纯属分享个人开发经验
图三的模式,更本就不没有把wxs事件的性能优势发挥出来啊
第三点说的有问题吧,js文件接收到数据后,再对wxml文件做相关的样式修改。这里js文件接收到数据后不也得setData才能触发wxml的样式修改??
效果呢?