fix(runtime-core): properly change v-on object keys #1358
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
emit('eventName')
will call a prop with the nameonEventName
.@eventName="eventHandler"
will be compiled into the proponEventName: event => _ctx.eventHandler(event)
.Both of those are completely fine, and event handlers are called as expected.
If you opt to use
v-on
with an object, it will probably not work as expected.v-on="{ eventName: eventHandler }"
is compiled to prop{ oneventName: eventhandler }
, and will thus never be called byemit('eventName')
.Currently you'll have to capitalize the event name,
v-on"{ EventName: eventHandler }"
.This is clunky, and it breaks with the common pattern that event names are in camelCase.
This PR fixes this by capitalizing the object keys before they're prepended with
'on'
.