Vue中v-model和v-bind:value的区别

本文探讨了Vue中v-model与v-bind:value的区别。v-model实现了双向数据绑定,当input值改变时,data中的msg也随之更新;而v-bind:value仅用于初始化,修改input值不会影响data。此外,v-model本质上是v-bind:value和v-on绑定input事件的组合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以input为例

一、Vue中v-model和v-bind:value的区别

1.v-model

 //HTML
  <div>
      <input type="text" placeholder="请输入值model" name="" id="" v-model="msg">
      <div>{{msg}}v-model绑定</div>
   </div>
//JS
  export default {
  data() {
    return {
      msg:""
    }
  },

当修改输入框中的数据改变时,data中的msg也会跟着变化,所以上下都是显示的"123456" 

2.v-bind:value

  //html
 <div>
     <input " type="text" placeholder="请输入值vaue" name="" id="" v-bind:value="msg1">
     <div>value绑定:{{msg1}}</div>
  </div>
//js
 export default {
   data() {
     return {
       msg1:"123"
     }
  },

可以看到当修改输入框中的值时,data中的msg并没有跟着改变,所以{{msg}} 中仍然显示的是初始时候的“123”

 

小结:

(1)v-model实现了视图和data中数据的双向绑定,二者有一个改变,另一个也会随之改变。

(2)v-bind:value 只是在初始化的时候把data中的数据绑定到input上,修改input的值不会改变data中的数据。

二、Vue中v-bind:value实现数据的双向绑定

//HtML
<div style="margin-top:10px;">
     <input style="border:1px solid sliver; " type="text" placeholder="请输入值vaue" 
         @input="text=$event.target.value" v-bind:value="text">
      <div>value双绑定:{{text}}</div>
 </div>
//JS
export default {
  name: "HelloWorld",
  data() {
    return {
      text:"123"
    }
  },

v-model原理:

v-model 其实是一个语法糖,它的背后本质上是包含两个操作

  • v-bind绑定一个value属性
  • v-on指令给当前元素绑定input事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值