Meituan-Dianping/mpvue · error
passive and prevent can't be used together. Passive handler
Error message
passive and prevent can't be used together. Passive handler can't prevent default event.
What it means
Dev-only warning in addHandler during codegen: an event was declared with both .prevent and .passive modifiers. Passive listeners promise the browser they will never call preventDefault (enabling scroll optimization), so the generated preventDefault guard would be ignored/contradictory; the combination is always a mistake.
Source
Thrown at src/compiler/helpers.js:51
) {
(el.directives || (el.directives = [])).push({ name, rawName, value, arg, modifiers })
}
export function addHandler (
el: ASTElement,
name: string,
value: string,
modifiers: ?ASTModifiers,
important?: boolean,
warn?: Function
) {
// warn prevent and passive modifier
/* istanbul ignore if */
if (
process.env.NODE_ENV !== 'production' && warn &&
modifiers && modifiers.prevent && modifiers.passive
) {
warn(
'passive and prevent can\'t be used together. ' +
'Passive handler can\'t prevent default event.'
)
}
// check capture modifier
if (modifiers && modifiers.capture) {
delete modifiers.capture
name = '!' + name // mark the event as captured
}
if (modifiers && modifiers.once) {
delete modifiers.once
name = '~' + name // mark the event as once
}
/* istanbul ignore if */
if (modifiers && modifiers.passive) {
delete modifiers.passive
name = '&' + name // mark the event as passive
}View on GitHub (pinned to 6c5d78ee04)
Solutions
- Drop .passive if you actually need to preventDefault
- Drop .prevent if the handler truly never prevents default (e.g. scroll-optimized listeners)
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/compiler/helpers.js:51 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Meituan-Dianping/mpvue@6c5d78ee04 (2026-09-02).
Data as JSON: /api/errors/50d9fdcd80a38051.
Report an issue: GitHub.