<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/unruffled-night-t32t2?file=/src/router.js:253-257" rel="nofollow">https://codesandbox.io/s/unruffled-night-t32t2?file=/src/router.js:253-257</a></p>
<h3 dir="auto">code</h3>



    
    
    &lt;script src="https://cdn.jsdelivr.net/npm/vue"&gt;&lt;/script&gt;
    &lt;script src="https://unpkg.com/vue-router/dist/vue-router.js"&gt;&lt;/script&gt;
    &lt;title&gt;input momery leak&lt;/title&gt;


    <div id="user-content-app" dir="auto">
        Go to input page
        <br>
        Go to empty page
        
    </div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;script&gt;
    const Inp = {
        data: function () {
            return {
                v: '',
                test: []
            }
        },
        mounted() {
            for (let i = 2000000; i &gt; 0; i--) {
                this.test.push(i)
            }
        },
        template: `&lt;input v-model=&quot;v&quot;&gt;&lt;/input&gt;`
    },
        Empty = { template: '&lt;div&gt;empty&lt;/div&gt;' },
        routes = [
            { path: '/input', component: Inp },
            { path: '/empty', component: Empty }
        ],
        router = new VueRouter({
            routes
        }),
        app = new Vue({
            el: '#app',
            router
        })
&lt;/script&gt;"><pre class="notranslate"><code class="notranslate">&lt;script&gt;
    const Inp = {
        data: function () {
            return {
                v: '',
                test: []
            }
        },
        mounted() {
            for (let i = 2000000; i &gt; 0; i--) {
                this.test.push(i)
            }
        },
        template: `&lt;input v-model="v"&gt;&lt;/input&gt;`
    },
        Empty = { template: '&lt;div&gt;empty&lt;/div&gt;' },
        routes = [
            { path: '/input', component: Inp },
            { path: '/empty', component: Empty }
        ],
        router = new VueRouter({
            routes
        }),
        app = new Vue({
            el: '#app',
            router
        })
&lt;/script&gt;
</code></pre></div>


<h3 dir="auto">Steps to reproduce</h3>
<p dir="auto">1.Click Go to input page link,collect garbage and take a snapshot with devtools<br>
2.Enter any value in the input box,collect garbage and take a snapshot with devtools<br>
3.Click Go to empty page link,collect garbage and take a snapshot with devtools</p>
<h3 dir="auto">What is expected?</h3>
<p dir="auto">Data memory release in component data</p>
<h3 dir="auto">What is actually happening?</h3>
<p dir="auto">Not released,variables test are still in memory</p>
<hr>
<p dir="auto">If the input box does nothing and leaves the page, the component data can be freed normally</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://github.com/nicolanilomartinoph/skillTree_nonSPA">https://github.com/nicolanilomartinoph/skillTree_nonSPA</a></p>
<h3 dir="auto">Steps to reproduce</h3>
<ol dir="auto">
<li>Create a state and add some variables</li>
<li>change one of the variable( delete, change spelling, add a variable)</li>
<li>Save file</li>
<li>npm run watch</li>
<li>CTRL   F5 your browser</li>
<li>Go to Chrome vue extension and click Switch to vuex</li>
<li>You'll notice that your changes doesn't reflect</li>
</ol>
<p dir="auto">Few things can happen:</p>
<ol dir="auto">
<li>delete variables still show</li>
<li>A change in spelling/letter case will result in 2 variable of both old and new spelling/case difference</li>
</ol>
<h3 dir="auto">What is expected?</h3>
<p dir="auto">For all changes to reflect on chrome vue extension</p>
<h3 dir="auto">What is actually happening?</h3>
<p dir="auto">Changes to the state can result in old and changed variables names.</p>
<p dir="auto">In the source file, the code is no longer there but if you go to the chrome extension, it still shows there.</p>
<hr>
<p dir="auto">I was simply changing the variable in the state so it would make more sense then the bug stated to happen. I notice in the vuex chrome extension that I have duplicate of the old variable and new variable name.</p>
<p dir="auto">I am also using plugins: [createPersistedState()] if that helps.<br>
I cannot debug properly because I'm not use if the new variable name takes effect or that old one is still out there.</p>
<p dir="auto">To be</p>