mpvue的自定义组件中运行$emit函数时输入框光标抖动的解决办法

Posted baimeishaoxia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mpvue的自定义组件中运行$emit函数时输入框光标抖动的解决办法相关的知识,希望对你有一定的参考价值。

记录一个mpvue中遇到的问题

遇到问题

//css
 <input type="number" v-model="value" @input="getValue">

//vue 
export default {
 data() {
      return {
        value: ‘‘
      }
    },
 methods:{
     getValue() {
        this.$emit(‘value‘, this.value);
      }
 }
}

在getValue中运行emit时输入框的光标抖动。光标闪烁这个问题一般可以用官网推荐的方法v-model.lazy修饰符解决,但是在此情况尝试无效。

解决办法

于是我用想象力,没错是想象力T_T|||。我想光标频繁闪烁是不是value被频繁操作,于是尝试断开emit和v-model的耦合关系,问题竟然真解决了...也是醉啊...

...
getValue() {
 var val = this.value;
 setTimeout(() => {
    this.$emit(‘value‘, val);
 }, 0)
},
...

以上是关于mpvue的自定义组件中运行$emit函数时输入框光标抖动的解决办法的主要内容,如果未能解决你的问题,请参考以下文章

Vue 组件之间传参!

$emit

vue中 关于$emit的用法(父子组件传值)

vue的$emit

Vue-$emit的用法

vue3的根节点