当前位置: 首页 > Web前端 > vue.js

关于vux组件range的一些坑

时间:2023-03-31 21:17:05 vue.js

最近在维护一个基于vuxUI的移动端项目时,发现了两个使用vuxrange组件的坑。研究这个组件的源码,解决了我在网上找不到解决办法时遇到的两个问题(可能是用的人少)。问题一:直接引用range组件时无法拖动原点。解决方法:1、在range组件的外层加上v-if。(重点在这)2、查看元素的层级关系。问题2:修改range组件绑定的V-model的数据个数,会导致累积失败。目前23过渡到24时,不会自动变回23,71过渡到72时,会自动变回71。解决方法:在range组件中设置:step='0.5'。当然,这不是避免vux内置方法计算问题的最佳方案。不感兴趣的可以跳过下面对源码中问题原因的分析:问题一:关键问题的源码我就不细说了,详细思路:打印出来的结果是widthof该元素是自动的。所以range写的计算方法是错误的,无法进行拖动。也就是说进入range初始化时元素的宽度有问题(我这里是因为range是嵌套在vuxdiolog组件中的)。在外层添加v-if确保我在外层对话框出现后加载rang进行初始化。问题解决问题2点击加号,范围的百分比增加1,发现生死不能加到23,后来用了最原始的方法,控制台打印的方法,找到了哪里问题点出现了。先说结论:**问题出在vux中封装滑动条滑动距离占总距离百分比的方法。23-过渡到24的计算结果为23.49145299145299,四舍五入后变成23。所以数字