У меня есть 2 вида A и B, которые загружаются в маршруты «routeA» и «routeB».
В представлении A я загружаю видео.
Когда я нажмите на кнопку, которая существует в представлении A, которое выполняет $router.push({ name: 'routeB'})
, оно загружает представление B, но я все еще могу слушать видео аудио, то есть DOM не очищал то, что загружалось в предыдущем представлении.
Способ загрузки маршрутов выглядит следующим образом:
const routeA = () => import('./components/A.vue');
const routeB = () => import('./components/B.vue');
export default [
{
path: '/routeA',
name: 'routeA',
component: routeA,
},
{
path: '/routeB',
name: 'routeB',
component: routeB,
},
];
Код, который я использую для загрузки видео:
let url = window.URL || window.webkitURL;
var vid = document.getElementById("my_video_player");
vm.video.profile_video_src = url.createObjectURL(xhr.response)+'#t=1';
vid.load();
Это связано с утечкой памяти, которая объясняется здесь: https://vuejs.org/v2/cookbook/avoiding-memory-leaks.html?
Есть ли шанс, что я смогу очистить DOM после перехода в другое представление? Или, по крайней мере, убедиться, что такие вещи, как видео, не продолжают загружаться / воспроизводиться?