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 1
1
import { useNuxtApp , useRoute , injectHead } from 'nuxt/app'
2
- import { ref } from 'vue'
2
+ import { ref , onScopeDispose } from 'vue'
3
3
import type { TrackedPage } from '#nuxt-scripts/types'
4
4
5
5
export function useScriptEventPage ( onChange ?: ( payload : TrackedPage ) => void ) {
@@ -17,7 +17,7 @@ export function useScriptEventPage(onChange?: (payload: TrackedPage) => void) {
17
17
let lastPayload : TrackedPage = { path : '' , title : '' }
18
18
let stopDomWatcher = ( ) => { }
19
19
// TODO make sure useAsyncData isn't running
20
- nuxt . hooks . hook ( 'page:finish' , ( ) => {
20
+ const stopPageFinishHook = nuxt . hooks . hook ( 'page:finish' , ( ) => {
21
21
Promise . race ( [
22
22
// possibly no head update is needed
23
23
new Promise ( resolve => setTimeout ( resolve , 100 ) ) ,
@@ -39,5 +39,11 @@ export function useScriptEventPage(onChange?: (payload: TrackedPage) => void) {
39
39
}
40
40
} )
41
41
} )
42
+
43
+ onScopeDispose ( ( ) => {
44
+ stopDomWatcher ( )
45
+ stopPageFinishHook ( )
46
+ } )
47
+
42
48
return payload
43
49
}
You can’t perform that action at this time.
0 commit comments