本人所说的小程序,都是基于mpvue
框架而上的,所以BUG
多是原生小程序的,也有多是mpvue
的。
在小程序input
组件中,若是使用v-model
进行双向绑定,在输入时会出现光标闪烁的BUG
。html
形成这个BUG的缘由,是由于在原生小程序input
组件上,进行了封装。才致使光标闪烁的问题。vue
这里提供了两种解决方案。各有各的优点,请选取合适的方案:小程序
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。this
/** * 父组件,不使用封装的子组件,直接使用原生组件。 */ // html <input v-model="value"/> // js export default { data(){ return { value:'' } } }
原文连接: Rychou|小程序输入框闪烁BUG解决方案