之前一直认为,v-model相当于下方代码的语法糖,如下:

<h1>{{inputValue}}</h1>
<input type="text" :value="inputValue" @input="inputValue = $event.target.value">

 

最近研究element-ui源码时,发现了compositionstart和compositionend方法(方法有什么用,请mdn),才发现v-model应该是下方代码的语法糖,与上方代码区别在于,当用类似于搜狗拼音输入法时,下方代码会在你选中输入的汉字时改变inputValue值

<h1>{{inputValue}}</h1>
<input type="text" :value="inputValue" @input="(event) => {if (isComposition) {return;}inputValue = event.target.value}" @compositionstart="isComposition = true"  @compositionend="(event) => {isComposition = false;inputValue = event.target.value}">

 

转载于:https://www.cnblogs.com/cjs1992/p/10254130.html

Logo

前往低代码交流专区

更多推荐