Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v-bind won't overwrite the property in $props with the same name #5150

Closed
holynewbie opened this issue Mar 9, 2017 · 4 comments
Closed

v-bind won't overwrite the property in $props with the same name #5150

holynewbie opened this issue Mar 9, 2017 · 4 comments

Comments

@holynewbie
Copy link

holynewbie commented Mar 9, 2017

Vue.js version

2.2.2

Reproduction Link

https://jsfiddle.net/holynewbie/bhbxht0g/

What is Expected?

the result should be

here is aa
here is bb 1

rather than

here is aa
here is bb 0

the might cause some problems in recursive component or dynamic component

@LinusBorg
Copy link
Member

This seems like intended behaviour to me: explicitly defined props overwrite losely defined ones.

the might cause some problems in recursive component or dynamic component

Can you expand on that?

@posva
Copy link
Member

posva commented Mar 9, 2017

@LinusBorg The opposite is actually happening 😆

@LinusBorg
Copy link
Member

LinusBorg commented Mar 9, 2017

Oh. Right. Anyways, I'm not aware that anything about the v-bind behaviour was changed recently, so it seems that was "indended" - but that would be up to @yyx990803 to answer.

@holynewbie
Copy link
Author

holynewbie commented Mar 9, 2017

@LinusBorg
Just look this simple demo: https://jsfiddle.net/holynewbie/03jskoLm/
if I use v-bind="$props" on the node , it will issue an error of stack overflow.
if there're more props to pass down, it will be very handy with v-bind="$props", but it may cannot stop the recurse or issues some other problem.

awamwang added a commit to awamwang/vue that referenced this issue Mar 16, 2017
* 'dev' of https://github.com/vuejs/vue: (118 commits)
  [weex] Support unary and left open tags (vuejs#5052)
  [release] 2.2.4
  [build] 2.2.4
  fix perf measure regression for nested components of the same name (fix vuejs#5181)
  [release] 2.2.3
  [build] 2.2.3
  perf code coverage
  improve camelCase prop warning message
  warn when template contains text outside root element (vuejs#5164)
  Warn when not passing props in kebab-case (vuejs#5161)
  turn off perf timeline measuring by default + reduce its impact on dev time perf (fix vuejs#5174)
  v-bind object should have lower priority than explicit bindings (fix vuejs#5150)
  fix custom directive arg fall through (fix vuejs#5162)
  formatting tweaks
  refactor create-component
  fix wrong order of generate modifier code (vuejs#5147)
  fix v-on unit test (vuejs#5144)
  fix vuejs#5121: parse content in textarea as plaintext (vuejs#5143)
  [release] 2.2.2
  [build] 2.2.2
  ...

# Conflicts:
#	dist/vue.runtime.common.js
#	src/core/vdom/helpers/update-listeners.js
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants