<p dir="auto">This is a very specific issue that only seems to be happening with <code class="notranslate">&lt;tr&gt;</code> elements. Here's a <a href="http://jsfiddle.net/oLkd7sqn/3/" rel="nofollow">JSFiddle</a> showing the behaviour. Basically the value <code class="notranslate">extra</code> that is passed in via <code class="notranslate">v-with</code> is not defined in the first 3 rows, but is in the second 3 rows. The only difference between them is their templates.</p>
<p dir="auto">Here's the code from the fiddle:</p>
<div class="highlight highlight-text-html-basic notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="&lt;table&gt;
    &lt;tr v-repeat=&quot;list&quot; v-with=&quot;extra: 300&quot; v-component=&quot;doesnt-work&quot;&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;&lt;hr&gt;&lt;/td&gt;&lt;/tr&gt;
    &lt;tr v-repeat=&quot;list&quot; v-with=&quot;extra: 300&quot; v-component=&quot;does-work&quot;&gt;&lt;/tr&gt;
&lt;/table&gt;"><pre class="notranslate"><span class="pl-kos">&lt;</span><span class="pl-ent">table</span><span class="pl-kos">&gt;</span>
    <span class="pl-kos">&lt;</span><span class="pl-ent">tr</span> <span class="pl-c1">v-repeat</span>="<span class="pl-s">list</span>" <span class="pl-c1">v-with</span>="<span class="pl-s">extra: 300</span>" <span class="pl-c1">v-component</span>="<span class="pl-s">doesnt-work</span>"<span class="pl-kos">&gt;</span><span class="pl-kos">&lt;/</span><span class="pl-ent">tr</span><span class="pl-kos">&gt;</span>
    <span class="pl-kos">&lt;</span><span class="pl-ent">tr</span><span class="pl-kos">&gt;</span><span class="pl-kos">&lt;</span><span class="pl-ent">td</span><span class="pl-kos">&gt;</span><span class="pl-kos">&lt;</span><span class="pl-ent">hr</span><span class="pl-kos">&gt;</span><span class="pl-kos">&lt;/</span><span class="pl-ent">td</span><span class="pl-kos">&gt;</span><span class="pl-kos">&lt;/</span><span class="pl-ent">tr</span><span class="pl-kos">&gt;</span>
    <span class="pl-kos">&lt;</span><span class="pl-ent">tr</span> <span class="pl-c1">v-repeat</span>="<span class="pl-s">list</span>" <span class="pl-c1">v-with</span>="<span class="pl-s">extra: 300</span>" <span class="pl-c1">v-component</span>="<span class="pl-s">does-work</span>"<span class="pl-kos">&gt;</span><span class="pl-kos">&lt;/</span><span class="pl-ent">tr</span><span class="pl-kos">&gt;</span>
<span class="pl-kos">&lt;/</span><span class="pl-ent">table</span><span class="pl-kos">&gt;</span></pre></div>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="new Vue({
    el: &quot;body&quot;,
    data: {
        list: [1, 2, 3]
    },
    components: {
        &quot;doesnt-work&quot;: {
            template: &quot;&lt;tr&gt;&lt;td&gt;Value: {{$value}}&lt;/td&gt;&lt;/tr&gt;&quot; +
                &quot;&lt;tr&gt;&lt;td&gt;Extra: {{extra}}&lt;/td&gt;&lt;/tr&gt;&quot;,
            replace: true
        },
        &quot;does-work&quot;: {
            template: &quot;&lt;tr&gt;&lt;td&gt;Extra: {{extra}}&lt;/td&gt;&lt;/tr&gt;&quot;,
            replace: true
        }
    }
});"><pre class="notranslate"><span class="pl-k">new</span> <span class="pl-v">Vue</span><span class="pl-kos">(</span><span class="pl-kos">{</span>
    <span class="pl-c1">el</span>: <span class="pl-s">"body"</span><span class="pl-kos">,</span>
    <span class="pl-c1">data</span>: <span class="pl-kos">{</span>
        <span class="pl-c1">list</span>: <span class="pl-kos">[</span><span class="pl-c1">1</span><span class="pl-kos">,</span> <span class="pl-c1">2</span><span class="pl-kos">,</span> <span class="pl-c1">3</span><span class="pl-kos">]</span>
    <span class="pl-kos">}</span><span class="pl-kos">,</span>
    <span class="pl-c1">components</span>: <span class="pl-kos">{</span>
        <span class="pl-s">"doesnt-work"</span>: <span class="pl-kos">{</span>
            <span class="pl-c1">template</span>: <span class="pl-s">"&lt;tr&gt;&lt;td&gt;Value: {{$value}}&lt;/td&gt;&lt;/tr&gt;"</span> <span class="pl-c1">+</span>
                <span class="pl-s">"&lt;tr&gt;&lt;td&gt;Extra: {{extra}}&lt;/td&gt;&lt;/tr&gt;"</span><span class="pl-kos">,</span>
            <span class="pl-c1">replace</span>: <span class="pl-c1">true</span>
        <span class="pl-kos">}</span><span class="pl-kos">,</span>
        <span class="pl-s">"does-work"</span>: <span class="pl-kos">{</span>
            <span class="pl-c1">template</span>: <span class="pl-s">"&lt;tr&gt;&lt;td&gt;Extra: {{extra}}&lt;/td&gt;&lt;/tr&gt;"</span><span class="pl-kos">,</span>
            <span class="pl-c1">replace</span>: <span class="pl-c1">true</span>
        <span class="pl-kos">}</span>
    <span class="pl-kos">}</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">And the output is:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Value: 1
Extra:
Value: 2
Extra:
Value: 3
Extra:
***
Extra: 300
Extra: 300
Extra: 300"><pre class="notranslate"><code class="notranslate">Value: 1
Extra:
Value: 2
Extra:
Value: 3
Extra:
***
Extra: 300
Extra: 300
Extra: 300
</code></pre></div>
<p dir="auto">Sometimes we would abstract some behaviours into mixins, for example: <code class="notranslate">A</code>, <code class="notranslate">B</code> and <code class="notranslate">C</code>. If <code class="notranslate">A</code> is mixed in <code class="notranslate">B</code> and <code class="notranslate">C</code>, and if the <code class="notranslate">A</code> has a required prop named <code class="notranslate">a</code>, then when component <code class="notranslate">D</code> requires <code class="notranslate">B</code> and <code class="notranslate">C</code> in mixins, vue will warn the <code class="notranslate">a</code> is required even if a value passed to <code class="notranslate">a</code>. Because one of the prop check from <code class="notranslate">B</code> or <code class="notranslate">C</code> digests the value of <code class="notranslate">a</code>, leaving another one nothing.</p>
<p dir="auto">By the way, are there any suggestions to use / compose mixins? Because of the features of mixins,   sometimes some implicit conflicts will raise up and not easy to find out. And in addition, the mixins require the component to obey some implicit interfaces, which lead to hard to maintain the codes.</p>