<h3 dir="auto">Version</h3>
<p dir="auto">2.6.8</p>
<h3 dir="auto">Reproduction link</h3>
<p dir="auto"><a href="https://codesandbox.io/s/54v49n1nzn" rel="nofollow">https://codesandbox.io/s/54v49n1nzn</a></p>
<h3 dir="auto">Steps to reproduce</h3>
<p dir="auto">The repro shows the issue directly.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;Child
      v-bind=&quot;{
        appleColor: 'objective red',
        bird: 'objective sparrow'
      }&quot;
      :apple-color=&quot;`proper red`&quot;
      :bird=&quot;`proper sparrow`&quot;
    /&gt;"><pre class="notranslate"><code class="notranslate">&lt;Child
      v-bind="{
        appleColor: 'objective red',
        bird: 'objective sparrow'
      }"
      :apple-color="`proper red`"
      :bird="`proper sparrow`"
    /&gt;
</code></pre></div>
<h3 dir="auto">What is expected?</h3>
<p dir="auto">I wanted to know what takes precedence when something is bound using <code class="notranslate">v-bind={}</code> vs set explicitly as a prop. I would expect this to always be one or the other, or to be resolved in order of declaration as when merging objects in JS ({...boundProps, specificProp })</p>
<h3 dir="auto">What is actually happening?</h3>
<p dir="auto">The precedence is determined based on whether a prop has multiple words. duplicate keys are set by the object when they are declared in dash-case, and set by the prop/attribute if they are camelCase or a single word.</p>
<hr>
<p dir="auto">This can be made 'consistent' by declaring multiword props using camelcase, but that's against the recommendations in the styleguide which suggest using dash case for multiword props inside templates: <a href="https://vuejs.org/v2/style-guide/#Prop-name-casing-strongly-recommended" rel="nofollow">https://vuejs.org/v2/style-guide/#Prop-name-casing-strongly-recommended</a>.</p>
<p dir="auto">I ran into this when an undefined value bound to a parent was overriding the same value explicitly set in the child, but it wasn't happening consistently depending on what the names of the props were.</p>
<h3 dir="auto">Version</h3>
<p dir="auto">2.6.11</p>
<h3 dir="auto">Reproduction link</h3>
<p dir="auto"><a href="https://jsfiddle.net/pvzkc51t/4/" rel="nofollow">https://jsfiddle.net/pvzkc51t/4/</a></p>
<h3 dir="auto">Steps to reproduce</h3>
<ol dir="auto">
<li>open the jsfiddle.</li>
<li>wait page loaded.</li>
<li>input some charactor in  element.</li>
<li>see the console.</li>
</ol>
<h3 dir="auto">What is expected?</h3>
<p dir="auto">nothing in console.</p>
<h3 dir="auto">What is actually happening?</h3>
<p dir="auto">"Why should I update" outputs in console.</p>
<hr>
<p dir="auto">$attrs and $listeners appeared to reduce workload.<br>
But they occur with form element will cause component update catastrophically.<br>
Event though nothing change in $attrs.</p>