之前一直认为,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}">
所有评论(0)