---
title: defineModel Creates Hidden Modifier Props - Avoid Naming Conflicts
impact: MEDIUM
impactDescription: defineModel automatically adds hidden *Modifiers props that can conflict with your prop names
type: gotcha
tags: [vue3, v-model, defineModel, modifiers, props, naming]
---
# defineModel Creates Hidden Modifier Props - Avoid Naming Conflicts
**Impact: MEDIUM** - When using `defineModel()`, Vue automatically creates hidden props with the suffix `Modifiers` for each model. For example, a model named `title` will create both a `title` prop AND a hidden `titleModifiers` prop. This can cause unexpected conflicts if you have other props ending in "Modifiers".
## Task Checklist
- [ ] Don't create props that end with "Modifiers" when using defineModel
- [ ] Be aware that each defineModel creates an associated *Modifiers prop
- [ ] When using multiple models, avoid names where one model could conflict with another's modifier prop
- [ ] Document custom modifiers to help consumers understand available options
**Problem - Hidden props created automatically:**
```vue
```
**Parent using modifiers:**
```vue
```
**Correct - Accessing modifiers in child:**
```vue
```
## Multiple Models and Potential Conflicts
```vue
```
**Best Practice - Clear, distinct model names:**
```vue
```
## Documenting Custom Modifiers
When creating components with custom modifier support, document them clearly:
```vue
```
## Reference
- [Vue.js Component v-model - Modifiers](https://vuejs.org/guide/components/v-model.html#handling-v-model-modifiers)
- [Vue.js RFC - defineModel](https://github.com/vuejs/rfcs/discussions/503)