小程序输入框闪烁BUG解决方案

前言

本人所说的小程序,都是基于 mpvue框架而上的,所以 BUG多是原生小程序的,也有多是 mpvue的。

问题描述

在小程序input组件中,若是使用v-model进行双向绑定,在输入时会出现光标闪烁的BUGhtml

缘由

形成这个BUG的缘由,是由于在原生小程序input组件上,进行了封装。才致使光标闪烁的问题。vue

解决方案

这里提供了两种解决方案。各有各的优点,请选取合适的方案:小程序

1、弃用v-model,使用@input

适用于input组件单纯是用户手动输入的,而没有像受权获取手机号,而后自动填入input组件中。这种须要赋予初始value的状况。即适用于单向绑定,而不是双向绑定框架

/** 
* 父组件
*/

// html
<childInput @input="onInput"/> <-- 注意这里不能使用:value=value赋予初始值,不然又会出现闪烁的BUG,由于此时就等同于v-model了

// js
import ChildInput from './ChildInput'
export default {
  components:{ ChildInput },
  data(){
    return {
      value:''
    }
  },
  methods(){
    onInput(e){
      this.value = e 
    }
  }
}

/** 
* 子组件 ChildInput
*/

// html

<input @input="$emit('input',$event)"/>

2、不封装input组件,直接使用v-model

这种状况就是能够直接双向绑定的了。具体缘由还不清楚,多是自己原生小程序的BUG。this

/**
* 父组件,不使用封装的子组件,直接使用原生组件。
*/

// html
<input v-model="value"/>

// js
export default {
  data(){
    return {
      value:''
    }
  }
}
原文连接: Rychou|小程序输入框闪烁BUG解决方案
相关文章
相关标签/搜索