导读:本期聚焦于小伙伴创作的《Vue 3中如何实现自定义Prop的双向绑定?告别.sync,拥抱v-model参数》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Vue 3中如何实现自定义Prop的双向绑定?告别.sync,拥抱v-model参数》有用,将其分享出去将是对创作者最好的鼓励。

在Vue 3中,自定义Prop的双向绑定方式相比Vue 2发生了明显变化。Vue 2提供的.sync修饰符已被正式移除,取而代之的是支持参数的v-model语法。这种方式让父子组件之间多个Prop的双向同步变得更直观,也更符合Vue 3整体的设计思路。

Vue 3中如何实现自定义Prop的双向绑定?告别.sync,拥抱v-model参数

为什么.sync被移除了

在Vue 2中,为了让子组件修改父组件传下来的Prop,我们常写类似<Child :title.sync="pageTitle" />的代码。其本质是被展开为传递Prop加监听update:title事件。Vue 3团队认为这种特殊修饰符增加了学习成本,于是将能力统一进v-model,通过v-model:propName的形式表达同样意图。

Vue 3中的v-model参数写法

在父组件里,你可以像下面这样使用带参数的v-model:

<template>
  <UserCard v-model:name="userName" v-model:age="userAge" />
</template>

<script setup>
import { ref } from 'vue'
import UserCard from './UserCard.vue'

const userName = ref('张三')
const userAge = ref(20)
</script>

子组件需要通过声明对应的modelValue式Prop,并在修改时触发update事件:

<script setup>
const props = defineProps({
  name: String,
  age: Number
})
const emit = defineEmits(['update:name', 'update:age'])

function changeName() {
  // 通知父组件修改name
  emit('update:name', '李四')
}
function grow() {
  emit('update:age', props.age + 1)
}
</script>

<template>
  <div>
    <p>姓名:{{ name }}</p>
    <p>年龄:{{ age }}</p>
    <button @click="changeName">改名字</button>
    <button @click="grow">长一岁</button>
  </div>
</template>

与Vue 2.sync写法的对照

如果你之前写过Vue 2,可以参考下面这张对照表,快速理解迁移方式:

Vue 2写法Vue 3写法
<Comp :value.sync="x" /><Comp v-model:value="x" />
this.$emit('update:value', newVal)emit('update:value', newVal)

多个双向绑定的优势

使用v-model参数后,同一个组件上可以写多个双向绑定,例如v-model:namev-model:visible,而不必像过去那样混用v-model和.sync。这让组件接口更清晰,维护起来也更方便。

小结

Vue 3用带参数的v-model取代了.sync修饰符,实现了更统一的自定义Prop双向绑定方案。只要记住子组件用update:xxx事件回传、父组件用v-model:xxx接收,就能轻松完成组件间的数据同步。

Vue3v-model自定义Prop修改时间:2026-07-29 10:36:24

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。