使用 this.$emit('input') 导致组件卡顿
发布于 3 年前 作者 chaoren 2299 次浏览 来自 问答
粉丝福利 : 关注VUE中文社区公众号,回复视频领取粉丝福利

自己写了个下拉框组件,

使用方式:drop-menu v-model=“result” />
组件功能:每次点击下拉选项后,把选择结果通过this.$emit(‘input’, …)返回给绑定的result

但是发现下拉选项多点几次后,组件会卡顿,
把this.$emit(‘input’, …)这段注释掉就不会卡顿。

再则通过在
1、组件里面 watch value的变化,并记录当前时间
2、this.$emit(‘input’, …) 的时候,也记录当前时间

比较得出,这2个时间差,和点击下拉选项的频率成正比,会越来越长,从间隔几毫秒、到几秒。

请教下有遇到这个问题吗,怎么优化?

回到顶部