国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Vue.js自定義事件的表單輸入組件方法

2019-11-19 14:12:42
字體:
來源:轉載
供稿:網友

Vue.js使用自定義事件的表單輸入組件

自定義事件可以用來創(chuàng)建自定義的表單輸入組件,使用 v-model 來進行數據雙向綁定。要牢記:

<input v-model="something">

這不過是以下示例的語法糖:

<input v-bind:value="something" v-on:input="something = $event.target.value">

所以在組件中使用時,它相當于下面的簡寫:

<custom-input v-bind:value="something" v-on:input="something = arguments[0]"></custom-input>

所以要讓組件的 v-model 生效,它應該 (從 2.2.0 起是可配置的):

接受一個 value prop

在有新的值時觸發(fā) input 事件并將新值作為參數

我們來看一個非常簡單的貨幣輸入的自定義控件:--在父組件中引用子組件模板時用綁定v-model數據:

<currency-input v-model="price"></currency-input>
Vue.component('currency-input', { template: '/  <span>/   $/   <input/    ref="input"/    v-bind:value="value"/    v-on:input="updateValue($event.target.value)"/   >/  </span>/ ', props: ['value'], methods: {  // 不是直接更新值,而是使用此方法來對輸入值進行格式化和位數限制  updateValue: function (value) {   var formattedValue = value    // 刪除兩側的空格符    .trim()    // 保留 2 位小數    .slice(     0,     value.indexOf('.') === -1      ? value.length      : value.indexOf('.') + 3    )   // 如果值尚不合規(guī),則手動覆蓋為合規(guī)的值   if (formattedValue !== value) {    this.$refs.input.value = formattedValue   }   // 通過 input 事件帶出數值   this.$emit('input', Number(formattedValue))  } }})

自定義組件的 v-model

2.2.0 新增

默認情況下,一個組件的 v-model 會使用 value prop 和 input 事件。但是諸如單選框、復選框之類的輸入類型可能把 value 用作了別的目的。model 選項可以避免這樣的沖突:

Vue.component('my-checkbox', { model: {  prop: 'checked',  event: 'change' }, props: {  checked: Boolean,  // 這樣就允許拿 `value` 這個 prop 做其它事了  value: String }, // ...})
<my-checkbox v-model="foo" value="some value"></my-checkbox>

上述代碼等價于:

<my-checkbox :checked="foo" @change="val => { foo = val }" value="some value"></my-checkbox>

注意你仍然需要顯式聲明 checked 這個 prop。

以上這篇Vue.js自定義事件的表單輸入組件方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 毕节市| 新宁县| 越西县| 黔西县| 福泉市| 皮山县| 明光市| 赣州市| 津市市| 峨眉山市| 屏东市| 巴中市| 旬阳县| 昭通市| 图木舒克市| 华蓥市| 攀枝花市| 钦州市| 梁河县| 清流县| 太和县| 大足县| 上蔡县| 涡阳县| 攀枝花市| 河南省| 柘城县| 三亚市| 望奎县| 楚雄市| 霍城县| 四子王旗| 益阳市| 藁城市| 宁海县| 阜阳市| 英超| 兴业县| 阳春市| 潜山县| 酒泉市|