zoukankan      html  css  js  c++  java
  • 小程序输入框闪烁BUG解决方案

    前言

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

    问题描述

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

    原因

    造成这个BUG的原因,是因为在原生小程序input组件上,进行了封装。才导致光标闪烁的问题。

    解决方案

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

    一、弃用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)"/>
    

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

    这种情况就是可以直接双向绑定的了。具体原因还不清楚,可能是本身原生小程序的BUG。

    /**
    * 父组件,不使用封装的子组件,直接使用原生组件。
    */
    
    // html
    <input v-model="value"/>
    
    // js
    export default {
      data(){
        return {
          value:''
        }
      }
    }
    原文链接:Rychou|小程序输入框闪烁BUG解决方案
  • 相关阅读:
    redis 集群
    redis--主从复制
    redis--AOF
    React——组件
    React——文件夹分析
    WEB面试
    WEB基础——接收后台文件方法
    WEB基础——AJAX
    C#进阶——IOC
    C#基础——HttpContext
  • 原文地址:https://www.cnblogs.com/10manongit/p/12699068.html
Copyright © 2011-2022 走看看