-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Vue unmount не очищает компоненты с v-once, созданные через vdom #1217
Comments
Проблема оказалась куда серьезнее - это баг на уровне Vue, вот пример в песочнице. Надо открыть консоль и покликать на кнопку "Change state", будет видно, что с каждым переключением количество событий растет, потому что не отрабатывает unmount. Также есть баг в репозитории Vue. Можно заменить |
Дополнительно поизучал внутри vue и что под капотом у v-once. |
Мб запретим использование v-once? |
Как воспроизвести баг
Destroy b-dummy
(это уничтожит b-virtual-scroll)Reload all components
ФР: получена ошибка
TypeError: Cannot use 'in' operator to search for 'getRoot' in undefined
Пояснение к багу
b-virtual-scroll
, внутри него рендерится компонент (b-dummy) внутри которого есть другой компонент (b-remote-provider) с v-onceb-virtual-scroll
, уничтожается толькоb-dummy
, аb-remote-provider
продолжает жить (утечка памяти)P.s. если удалить v-once, то
vue.unmount()
удалит иb-remote-provider
.Если бы не было вызова
vue.unmount
, то продолжали бы жить вообще все внутренние компоненты b-dummy, так какb-virtuall-scroll
вызываетdestroy
только непосредственно у item'а.Дифф: https://github.com/V4Fire/Client/compare/v4...examples/1217?expand=1
The text was updated successfully, but these errors were encountered: