--- title: Event Modifier Order Matters impact: MEDIUM impactDescription: Modifier order affects event handling behavior - wrong order causes unexpected propagation or prevention type: gotcha tags: [vue3, events, modifiers, v-on, click, form] --- # Event Modifier Order Matters **Impact: MEDIUM** - When chaining event modifiers, the order determines behavior because Vue generates code in the same sequence. Using `.prevent.self` vs `.self.prevent` produces different results that can cause subtle bugs in event handling. ## Task Checklist - [ ] Always consider modifier order when chaining multiple modifiers - [ ] Use `.prevent.self` to prevent default on element AND children - [ ] Use `.self.prevent` to prevent default ONLY on the element itself - [ ] Test event behavior on both the element and its children **Incorrect:** ```html ``` ```html ``` **Correct:** ```html ``` ```html ``` ```html ``` ## How Modifier Order Works ```javascript // Vue compiles modifiers in order, so: // @click.prevent.self compiles to: // event.preventDefault() // if (event.target !== event.currentTarget) return // handler() // @click.self.prevent compiles to: // if (event.target !== event.currentTarget) return // event.preventDefault() // handler() ``` ## Common Modifier Combinations ```html Link
...
``` ## Reference - [Vue.js Event Handling - Event Modifiers](https://vuejs.org/guide/essentials/event-handling.html#event-modifiers)