Вот стандартный способ использования VueJS на HTML-странице (без пакетов). Нет назначения.

{amp}lt;script{amp}gt; new Vue({ el: '#root', data: { title: 'Hello' }) {amp}lt;/script{amp}gt; 

Почему сборщик мусора не собирает этот объект Vue?

Когда вы создаете экземпляр объекта Vue, он фактически монтирует себя к элементу DOM, в данном #root элементу #root , как кратко #root на этой странице документации #root Vue Instance{amp}gt; Instance Lifecycle .

Используя Инструменты разработчика в вашем браузере, как в Chrome, вы можете открыть вкладку консоли и console.log(window.$vm0); , введите console.log(window.$vm0); и нажмите ввод. И вы получаете доступ к своему экземпляру среды выполнения Vue, даже если он не был назначен переменной:

 {amp}gt; Vue {_uid: 2, _isVue: true, $options: {…}, _renderProxy: Proxy, _self: Vue, …} 

Я открыл еще один вопрос о том, как правильно обращаться к экземпляру Vue, если он не был назначен переменной во время создания экземпляра .

Основной момент, как ответ на этот текущий вопрос, заключается в том, что на самом деле за кулисами происходит собственное назначение переменных / монтирование DOM, поэтому сборка мусора не запускается.

PS. Существует подробная документация к статье «Как избежать утечек памяти в связи с обработкой сборки мусора в приложении Vue».