---
title: Vue3 defineModel
date: 2026-06-05
---
# 一、概念
defineModel是对 props + emit的语法糖,返回一个可写的 ref。Vu3.4开始支持。
之前的做法:
```ts
// 子组件
const props = defineProps({
modelValue: Number
})
const emit = defineEmits(['update:modelValue'])
function increment() {
emit('update:modelValue', props.modelValue + 1)
}
```
现在做法:
```ts
const model = defineModel()
```
# 二、简单示例
父组件:
```vue
```
子组件:
```vue
{{ quantity }}
```
和`defineProps`定义类似,可以指定类型和默认值。
# 三、多个v-model
父组件:
```vue
```
子组件:
```vue
```
::: tip
defineProps: 只读,不能改
defineModel: 可写
:::