在Vue中實現聊天輸入框常見需求是輸入框高度隨內容自動增長。下面是一個簡單實現的示例:
<template> <div> <textarea ref="textarea" v-model="input" @input="handleInput" :style="{ height: inputHeight }" placeholder="請輸入內容"> </textarea> </div> </template> <script> export default { data () { return { input: '', inputHeight: 'auto' } }, methods: { handleInput() { this.$nextTick(() => { this.inputHeight = this.$refs.textarea.scrollHeight + 'px' }) } } } </script>
代碼中,我們使用了textarea作為聊天輸入框,給它設置一個ref屬性用于獲取到元素節點,同時使用v-model指令將輸入內容與data中的input綁定。接著,我們監聽textarea的input事件,在該事件處理函數中,使用$nextTick方法獲取到textarea的scrollHeight屬性并將其設置為inputHeight,從而實現輸入框高度自適應的效果。
需要注意的是,textarea必須設置resize屬性為none或vertical,否則在部分瀏覽器下,輸入框高度無法自適應。
最后,我們還可以對輸入內容進行驗證和限制。例如,禁止輸入空格和特殊字符,限制輸入字數等。
上一篇json怎么轉化為對象
下一篇json怎么轉化為圖片