1.需求:實時監聽 input 長度變化,並顯示
html:
<el-input v-model="inputTitle" ref="count" ></el-input>
<span class="max-length">{{countTitle}}/{{maxlength}}</span>
watch:{
inputTitle(){
this.$nextTick(() => {
this.countTitle = this.$refs.count.value.length <= this.maxlength ? this.$refs.count.value.length : this.maxlength
})
},
}
沒有使用this.$nextTick時,直接監聽inout綁定的值,輸入一個字符打印this.$refs.count.value.length為0,刪除一個字符長度會先加1,然后再減減
原因是提前監聽了長度而dom還未渲染,因為Vue中DOM更新是異步的;
官方解釋:this.$nextTick將回調延遲到下次 DOM 更新循環之后執行。在修改數據之后立即使用它,然后等待 DOM 更新。它跟全局方法 Vue.nextTick 一樣,不同的是回調的 this 自動綁定到調用它的實例上。
加上this.$nextTick后就可以實時監聽到input的vulau長度(也可以加個延時器,效果一樣)
2.使用element ui input 給輸入框尾部添加內容

使用sufifix屬性,1.0版本沒有此屬性,2.6增加了此屬性
使用插槽,直接可以實現
<template>-->
<slot slot="suffix" class="input-slot">0/25</slot>
</template>-->
3.input 回車事件
如果el-input外面包裹的有form 直接使用@keyup.native.enter="方法名" 可能不起作用,此時在form里加上@submit.native.prevent就可以了
單獨使用input直接用@keyup.native.enter="方法名"就可以了。
前端小白自己在項目中遇到的問題,有不恰當的地方望指正,謝謝!
