指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub

vue3使用 v-model和 :model-value 的区别:

在 Vue 3 中, `v-model` 和 `:model-value` 都用于实现双向数据绑定,但有一些细微差别:

1>. **语法**
   - `v-model` 是一个语法糖,相当于 `:value="valueFromParent" @input="valueFromParent = $event"`
   - `:model-value` 和 `@update:modelValue` 分别用于显式设置组件的 value 属性和更新事件
  
2>. **自定义修饰符**
   - `v-model` 支持 `.trim`、`.number` 等修饰符,可以对绑定值进行转换
   - `:model-value` 不支持修饰符,如需转换需自行处理
  
3>. **默认 Prop 名称**
   - 使用 `v-model` 时,默认会匹配名为 `modelValue` 的 prop 和 `update:modelValue` 事件
   - 使用 `:model-value` 时,直接使用提供的 prop 和事件名称
  
4>. **语义**
   - `v-model` 语义上表达了"双向绑定",易于理解
   - `:model-value` 语义更加明确,分离了传入值和更新事件
  
总的来说,`v-model` 是一个更简洁的语法,适用于大多数场景。而 `:model-value` 则更灵活,可以自定义 prop 和事件名称,因此在一些特殊情况下更有用,如果需要与 Vue 2 的 `v-model` 行为保持一致也可以使用它。