docs: add mergeProps behavior note to props guide#3403
Open
whysopaul wants to merge 1 commit into
Open
Conversation
…t bindings When a component receives bindings from multiple sources — explicit `@event` listeners and a `v-bind` object — Vue internally uses `mergeProps()` to combine them. The merging strategy is asymmetric: regular props are overwritten by the last value, while event listeners, `class`, and `style` are merged. This behavior is only documented in the Render Function API reference, but users are most likely to encounter it in the context of `v-bind` on components. This PR adds a note to the "Binding Multiple Properties Using an Object" section of the Props guide, where the reader already has the right context.
✅ Deploy Preview for vuejs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description of Problem
When combining explicit bindings (e.g.
@click) with av-bindobject on a component, Vue internally usesmergeProps()to combine them. The merging strategy is asymmetric: regular props are overwritten by the last value, while event listeners,class, andstyleare merged. This behavior is not documented in the Components Props guide, leaving users without explanation for why multiple handlers fire unexpectedly.Proposed Solution
Add a "Merge Behavior When Combining Bindings" subsection to the "Prop Passing Details" section of the Props guide, where the reader already has the right context. The note covers the asymmetric merge strategy and links to the existing documentation in the Render Function API reference and Fallthrough Attributes guide.
Additional Information
The merging rules are already documented in the
mergeProps()API reference and partially in Fallthrough Attributes, but neither of those sections addresses the case of explicitv-bindusage in a parent template.