vue双向绑定和双向修改写法总结

2.x 双向绑定

复制代码
//使用value和input老式写法
<ChildComponent v-model="pageTitle" />
//是以下的简写
<ChildComponent :value="pageTitle" @input="pageTitle = $event" />

//不使用value和input的写法,title代替value,change代替input
<ChildComponent v-model="pageTitle" />
//是以下的简写
<ChildComponent :title="pageTitle" @change="pageTitle = $event" />

export default {
  model: {
    prop: 'title',
    event: 'change'
  },
  props: {
    // 这将允许 `value` 属性用于其他用途
    value: String,
    // 使用 `title` 代替 `value` 作为 model 的 prop
    title: {
      type: String,
      default: 'Default title'
    }
  }
}
复制代码

2.x sync双向修改

<ChildComponent :title.sync="pageTitle" />
//是以下的简写
<ChildComponent :title="pageTitle" @update:title="pageTitle = $event" />

//组件内部使用update:title事件更新prop的值
this.$emit('update:title', newValue)

3.x 双向绑定

复制代码
//3.x的双向绑定使用modelValue和@update:modelValue,不再使用value和input
<ChildComponent v-model="pageTitle" />
//是以下的简写
<ChildComponent :modelValue="pageTitle" @update:modelValue="pageTitle = $event" />


//3.x的v-model可以代替.sync写法,指定属性
<ChildComponent v-model:title="pageTitle" />
//是以下的简写
<ChildComponent :title="pageTitle" @update:title="pageTitle = $event" />


//3.x的v-model可以对多个属性进行双向绑定
<ChildComponent v-model:title="pageTitle" v-model:content="pageContent" />
//是以下的简写
<ChildComponent
  :title="pageTitle"
  @update:title="pageTitle = $event"
  :content="pageContent"
  @update:content="pageContent = $event"
/>
复制代码

 

出处:浅谈 Vue3 中的 v-model 和 sync 修饰符 

posted @   全玉  阅读(359)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2018-02-28 'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序
2018-02-28 vue数组对象修改触发视图更新
2017-02-28 点击其他区域关闭dialog
点击右上角即可分享
微信分享提示