v-model的用法与解析
僅用于以下控件:
<input> <select> <textarea> 組件v-model以Vue 實例的數據作為數據來源,應當在組件的 data 選項中聲明初始值,之后通過監聽用戶的輸入事件以更新數據,并對一些極端場景進行一些特殊處理。
在表單控件上使用v-model
v-model根據不同的控件類型,使用不同的屬性作為輸入并拋出不同的事件:
text 和 textarea 元素使用 value 屬性和 input 事件;
checkbox 和 radio ,單個選項使用checked屬性,多個選項,輸出value屬性的數組,事件使用 change
select 字段將 value 作為 prop 并將 change 作為事件。
1、text 和 textarea 元素綁定value 屬性和 input 事件:
監聽用戶的輸入,并將value的值給message,所以,當用戶有輸入時,p標簽里的{{ message }}會實時顯示用戶的輸入
注意,在<textarea></textarea>中使用插值不會生效,而是給它綁定v-model,在另外的地方輸出對應的value。
2、checkbox 復選框:單個選項綁定checked屬性,多個選項綁定value屬性到一個數組,事件為 change :
3、radio單選按鈕:
4、select選擇框:
(1)只可單選時,綁定選項的value值
2)可多選時,綁定value到一個數組
5、在組件上使用v-moel
組件上的 v-model 默認使用名為 value 的 prop 和名為 input 的事件。
組件的input事件通過組件內部輸入框的input事件提交$emit,手動觸發。
所以為了保持組件內input的value和input和組件的保持一致,組件內的 必須:
- value 使用作為prop 的value
- input 綁定到組件的input事件
以上是v-model的默認操作,但是像復選框用作單個選項這種使用checked屬性而不是value屬性,可以用實例的model 選項重新定義默認的prop和事件:
Vue.component('base-checkbox', {model: {prop: 'checked',event: 'change'},props: {checked: Boolean},template: `<inputtype="checkbox":checked="checked":change="$emit('change', $event.target.checked)">` })v-model修飾符
在默認情況下,v-model 在每次 input 事件觸發后將輸入框的值與數據進行同步 (除了上述輸入法組合文字時)。你可以添加 lazy 修飾符,從而轉變為使用 change 事件進行同步:
<!-- 在“change”時而非“input”時更新 --> <input v-model.lazy="msg" >
.number
如果想自動將用戶的輸入值轉為數值類型,可以給 v-model 添加 number 修飾符:<input v-model.number="age" type="number">
.trim
如果要自動過濾用戶輸入的首尾空白字符,可以給 v-model 添加 trim 修飾符:<input v-model.trim="msg">
轉載于
https://www.cnblogs.com/yaoyao-sun/p/10542612.html
總結
以上是生活随笔為你收集整理的v-model的用法与解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker 容器中创建文件修改操作提示
- 下一篇: 《事实》读书笔记