vue項目使用 elementUI input 組件的一些小技巧


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="方法名"就可以了。

 

前端小白自己在項目中遇到的問題,有不恰當的地方望指正,謝謝!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM