<h3 dir="auto">Version</h3>
<p dir="auto">2.6.11</p>
<h3 dir="auto">Reproduction link</h3>
<p dir="auto"><a href="https://codesandbox.io/s/happy-pascal-reiyx?fontsize=14&amp;hidenavigation=1&amp;theme=dark" rel="nofollow">https://codesandbox.io/s/happy-pascal-reiyx?fontsize=14&amp;hidenavigation=1&amp;theme=dark</a></p>
<h3 dir="auto">Steps to reproduce</h3>
<ol dir="auto">
<li>Please see linked minimal example.</li>
<li>Create a component A which uses a functional component B inside a default slot.</li>
<li>Use Component A, but slot in something else so the functional component B does not appear.</li>
</ol>
<h3 dir="auto">What is expected?</h3>
<p dir="auto">The render() function of the functional component should not be called. As it does not appear, I shouldn't expect its render function to be called.</p>
<h3 dir="auto">What is actually happening?</h3>
<p dir="auto">The render() function is called, as seen by the console output which logs when the function is called.</p>
<hr>
<p dir="auto">Issues:<br>
I encountered this when I was creating a table with 10,000 cells and each &lt;\td&gt; was a functional component. However the table was able to slot in its own component over the &lt;\td&gt;. Doing so meant the slotted clotted was created along with 10,000 unnecessary renders() from the functional component. This added about ~1s load time.</p>
<p dir="auto">Workarounds:<br>
Don't put the functional component inside the slot. Instead, the functional component should be used outside and have a v-if on it checking if the slot has not been used. It is the same end result, but render() is not called.</p>
<h3 dir="auto">Version</h3>
<p dir="auto">2.5.16</p>
<h3 dir="auto">Reproduction link</h3>
<p dir="auto"><a href="https://jsfiddle.net/86us8zxz/2/" rel="nofollow">https://jsfiddle.net/86us8zxz/2/</a></p>
<h3 dir="auto">Steps to reproduce</h3>
<p dir="auto">Attach a <code class="notranslate">new Set()</code> object to the <code class="notranslate">data</code> attribute of a component and modify it by using the set's methods (add, delete, etc).</p>
<h3 dir="auto">What is expected?</h3>
<p dir="auto">Changes in the set would reflect in the rendered HTML, just like they do for arrays.</p>
<h3 dir="auto">What is actually happening?</h3>
<p dir="auto">Nothing - the change of the set isn't picked up by Vue, making this property not reactive. This is unusual because mutations of an array works as expected (see link).</p>
<h3 dir="auto">Additional notes</h3>
<p dir="auto"><a href="https://jsfiddle.net/86us8zxz/3/" rel="nofollow">https://jsfiddle.net/86us8zxz/3/</a> shows that the change in the set seems to be detected (unless the reactive system of Vue works different to my understanding) as the view updates when the set is converted to an array.</p>