v-model语法糖

作者: nice_u1 | 来源:发表于2017-11-24 10:02 被阅读0次

v-model 主要是用于表单上数据的双向绑定

一:基本

1:主要用于 input,select,textarea,component

2:修饰符:

    .lazy- 取代input监听change事件

    .number- 输入字符串转为数字

    .trim- 输入首尾空格过滤

二:语法糖

    <input type="text" v-model="mes">  此时mes值就与input的值进行双向绑定

    实际上上面的代码是下面代码的语法糖。

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

    要理解这行代码,首先你要知道 input 元素本身有个 oninput 事件,这是 HTML5 新增加的,类似     onchange ,每当输入框内容发生变化,就会触发 oninput ,把最新的value传递给 mes。从而实      现了v-model

三:v-model用在组件上的时候

我们知道v-model可以实现数据的双向绑定,但是,如果说这是一个复杂的输入框,在项目中也经常使用。此时我们我们就把这个1输入框封装成组件,那怎么利用v-mode让父组件的值与子组件input框里的值双向绑定起来。看下面的例子

1:父组件

                <InputBox v-model="mes"></InputBox>

            根据上面讲的v-model语法糖,所以 InputBox那行代码也可以写成

            <InputBox v-bind:value="value"   v-on:input="mes= $event.target.value"></InputBox>

2:子组件

所以说:1:接受一个value  prop    2:在有新的值时触发input事件并将新值作为参数  。这样,我们就可以看到子组件和父组件的值就可以联动起来。但是我们看到v-model中的事件是input,如果碰到单选复选按钮这种check事件,那我们就需要去自定义v-model,我们来看看第四节

四:v-model自定义。

1:父组件还是一样的写

<InputCheckout v-model="foo"></InputCheckout>

但是单选复选框不会触发input事件,只会触发change事件。所以在子组件我们需要自定义v-model。我们来看看代码哈

2:

这样就可以了

相关文章

  • Vue v-model语法糖

    v-model语法糖 我们可以使用v-model对input进行双向绑定 v-model 语法糖本质是 :valu...

  • 双向绑定

    v-model 语法糖 jsbin代码示例

  • Vue中的v-model理解

    官方文档讲的比较模糊,自己通过例子进行理解。 v-model是语法糖 首先明确一点,v-model仅仅是语法糖。 ...

  • 三、双向绑定v-model

    1、v-model 指令 v-model实现双向绑定的语法糖[https://blog.csdn.net/weix...

  • 2020-09-11 当v-model绑定在组件上

    当v-model绑定在组件上时,相当于拆分v-model的语法糖父组件: 子组件:

  • vue下面自定义组件使用v-model

    起始v-model就是v-bind:value + 'input'事件的语法糖,使用v-model来进行双向数据绑...

  • Vue高级特性

    自定义v-model v-model实际上是语法糖: 案例: $nextTick异步渲染 $nextTick会在D...

  • v-model与.sync

    在组件上使用v-model v-model的原理v-model其实只是语法糖,当我们在input标签内写上v-mo...

  • vue v-model 语法糖

    今天我们来讲解一下 v-model 语法糖的知识。 1,v-model 本质 v-model,只是一个指令,本质上...

  • 自定义组件封装 v-model

    v-model 的实质其实就是语法糖 从上图中我们可以看到v-model=”something”则表示将value...

网友评论

    本文标题:v-model语法糖

    本文链接:https://www.haomeiwen.com/subject/uuczvxtx.html