<强> Vue.js使用自定义事件的表单输入组件强>
自定义事件可以用来创建自定义的表单输入组件,使用v模型来进行数据双向绑定。要牢记:
& lt;输入v模型="东西"在
<强>这不过是以下示例的语法糖:强>
& lt;输入 v-bind:价值=" https://www.yisu.com/zixun/something " v:输入="=$ event.target.value”在
<强>所以在组件中使用时,它相当于下面的简写:强>
& lt;定制输入 v-bind:价值=" https://www.yisu.com/zixun/something " v:输入="[0]=参数”在 & lt;/custom-input>
所以要让组件的v模型生效,它应该(从2.2.0起是可配置的):
接受一个价值支撑
在有新的值时触发输入事件并将新值作为参数
我们来看一个非常简单的货币输入的自定义控件:——在父组件中引用子组件模板时用绑定v模型数据:
& lt; currency-input v模型="价格"祝辞& lt;/currency-input>
Vue.component (currency-input, { 模板:“\ & lt; span> \ 美元\ 输入\ & lt; ref=\“输入” v-bind: https://www.yisu.com/zixun/value=\“价值” v:输入=" updateValue (event.target.value美元)“\ 祝辞\ & lt;/span> \ ”, 道具:(“价值”), 方法:{//不是直接更新值,而是使用此方法来对输入值进行格式化和位数限制 updateValue:功能(价值){ var formattedValue=https://www.yisu.com/zixun/value//删除两侧的空格符 .trim ()//保留2位小数 .slice ( 0, value.indexOf (' . ')===1 & # 63;value.length :value.indexOf (' . ') + 3 )//如果值尚不合规,则手动覆盖为合规的值 如果(formattedValue !==值){ refs.input美元。值=https://www.yisu.com/zixun/formattedValue }//通过输入事件带出数的值 这一点。释放美元(“输入”,数量(formattedValue)) } } })
<>强自定义组件的强> v模型
2.2.0新增
默认情况下,一个组件的v模型会使用价值支撑和输入事件。但是诸如单选框,复选框之类的输入类型可能把用价值作了别的目的得选项可以避免这样的冲突:
Vue.component (my-checkbox, { 模型:{ 道具:“检查”, 事件:“改变” }, 道具:{ 检查:布尔,//这样就允许拿“价值”这个道具做其它事了 值:字符串 },//? })
& lt; my-checkbox v模型=" foo " value=" https://www.yisu.com/zixun/some价值”祝辞& lt;/my-checkbox>
上述代码等价于:
& lt; my-checkbox :检查=癴oo” @change=" val=比;{foo=val}” 值=" https://www.yisu.com/zixun/some价值”在 & lt;/my-checkbox>
注意你仍然需要显式声明检查这个道具。
以上这篇Vue.js自定义事件的表单输入组件方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。