Vue · Style

VUE0014Prefer defineModel for component v-model

Finds Vue style code that should use the supported define model pattern instead.

Why it happens

defineModel() keeps a component's model prop, update event, modifiers, and type in one compiler-checked declaration.

Fix

Use the Vue-supported define model pattern instead.

Example

Use defineModel

Before

<script setup lang="ts">
defineProps<{ modelValue: string }>()
const emit = defineEmits<{ 'update:modelValue': [value: string] }>()
</script>

After

<script setup lang="ts">
const modelValue = defineModel<string>()
</script>

Verify the fix

Run only this rule after editing so the report stays focused on the diagnostic you are closing:

pnpm vite-doctor . --framework vue --rules vue/style/prefer-define-model
Copyright © 2026