vue中 v-model 和 :model 的区别

今天在写demo的时候发现一件奇怪的事:

当我在给 input 元素使用 v-model 的缩写形式 :model 时,想要绑定的数据并没有渲染到浏览器中

 然鹅,改为 v-model 之后就能成功渲染了

 于是经过我一番研究发现 :model 其实相当于 v-bind:model 的缩写,对于我想要绑定的 input 的值应该使用 v-bind:value ,所以如果在 input 元素上想要使用缩写形式应该是 :value ,经过我的试验发现这种缩写形式确实是可行的,数据可以成功渲染到浏览器

v-model:

v-model 是 v-model:value 的缩写,通常用于表单上的双向数据绑定(表单接受值 value,故v-model默认收集的就是 value ,所以缩写直接省略 value),可以实现子组件到父组件的双向数据动态绑定。数据不仅能从data流向页面,还可以从页面流向data。

:model:

:model 是 v-bind:model 的缩写,可以实现将父组件的值传递给子组件,但是子组件不能传给父组件,无法双向绑定。

v-bind:

v-bind:value 可以简写为 :value ,数据只能从data流向页面。

  • 38
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
,v-model和:model都用于将数据绑定到HTML元素上。它们的作用是相同的,都用于实现双向数据绑定。然而,它们在使用方式上有一些不同。 v-model是v-bind和input事件的语法糖,可以同时实现数据的绑定和同步。它适用于大多数表单元素,如input、select、textarea等。使用v-model时,只需在元素上添加v-model指令,并将数据属性作为指令的参数即可。例如,v-model="name"将会将输入框的值与name属性进行双向绑定。 而:model则是v-bind的简写形式,用于将数据绑定到元素的value属性上。它适用于一些特殊的表单元素,比如checkbox和radio。使用:model时,需要将数据属性作为指令的参数,并使用v-bind指令将value属性绑定到相应的数据属性上。例如,:model="isChecked"将会将复选框的选状态与isChecked属性进行绑定。 需要注意的是,当v-bind和v-model同时用在一个元素上时,它们的作用没有改变,但是v-model的优先级更高。也就是说,如果同时使用了v-bind和v-model指令,并且两者都绑定了同一个属性,那么v-model的绑定将会覆盖v-bind的绑定。 此外,还需要区分元素是单个出现还是一组出现。对于单个元素,可以直接使用v-model指令进行绑定。而对于一组元素,比如多个checkbox或radio,可以使用v-bind指令绑定一个数组来实现多选或单选的功能。 综上所述,v-model和:model在实现双向数据绑定上是相同的,但在使用方式和适应的表单元素上有一些不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值