File tree Expand file tree Collapse file tree 1 file changed +8
-2
lines changed Expand file tree Collapse file tree 1 file changed +8
-2
lines changed Original file line number Diff line number Diff line change 11import { useNuxtApp , useRoute , injectHead } from 'nuxt/app'
2- import { ref } from 'vue'
2+ import { ref , onScopeDispose } from 'vue'
33import type { TrackedPage } from '#nuxt-scripts/types'
44
55export function useScriptEventPage ( onChange ?: ( payload : TrackedPage ) => void ) {
@@ -17,7 +17,7 @@ export function useScriptEventPage(onChange?: (payload: TrackedPage) => void) {
1717 let lastPayload : TrackedPage = { path : '' , title : '' }
1818 let stopDomWatcher = ( ) => { }
1919 // TODO make sure useAsyncData isn't running
20- nuxt . hooks . hook ( 'page:finish' , ( ) => {
20+ const stopPageFinishHook = nuxt . hooks . hook ( 'page:finish' , ( ) => {
2121 Promise . race ( [
2222 // possibly no head update is needed
2323 new Promise ( resolve => setTimeout ( resolve , 100 ) ) ,
@@ -39,5 +39,11 @@ export function useScriptEventPage(onChange?: (payload: TrackedPage) => void) {
3939 }
4040 } )
4141 } )
42+
43+ onScopeDispose ( ( ) => {
44+ stopDomWatcher ( )
45+ stopPageFinishHook ( )
46+ } )
47+
4248 return payload
4349}
You can’t perform that action at this time.
0 commit comments