Skip to content

Commit bacd3de

Browse files
committed
fix: prefer ref triggers or promise booleans
Fixes #265
1 parent 722ae0d commit bacd3de

File tree

9 files changed

+214
-112
lines changed

9 files changed

+214
-112
lines changed

docs/content/docs/1.guides/1.registry-scripts.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,10 @@ Registry scripts doesn't stop you from making use of the core `useScript` featur
155155
- `scriptInput` - Additional input to pass to the script. Same as [useScript Input](/docs/api/use-script#scriptinput).
156156

157157
```ts
158+
import { useTimeout } from '@vueuse/core'
159+
import { useScriptCloudflareWebAnalytics } from '#imports'
160+
161+
const { ready } = useTimeout(5000)
158162
useScriptCloudflareWebAnalytics({
159163
token: '123',
160164
// HTML attributes to pass to the script element
@@ -163,7 +167,7 @@ useScriptCloudflareWebAnalytics({
163167
},
164168
// useScript options used for advanced features
165169
scriptOptions: {
166-
trigger: new Promise(resolve => setTimeout(resolve, 3000)),
170+
trigger: ready,
167171
bundle: true,
168172
},
169173
})

docs/content/docs/1.guides/1.script-triggers.md

+21-3
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,25 @@ Nuxt Scripts provides several ways to trigger the loading of scripts.
77
::code-group
88

99
```ts [useScript]
10+
import { useTimeout } from '@vueuse/core'
11+
12+
const { ready } = useTimeout(3000)
1013
useScript({
1114
src: 'https://example.com/script.js',
1215
}, {
1316
// load however you like!
14-
trigger: new Promise(resolve => setTimeout(resolve, 3000))
17+
trigger: ready, // refs supported
1518
})
1619
```
1720

1821
```ts [Registry Script]
22+
import { useTimeout } from '@vueuse/core'
23+
24+
const { ready } = useTimeout(3000)
1925
useScriptMetaPixel({
2026
id: '1234567890',
2127
scriptOptions: {
22-
// load however you like!
23-
trigger: new Promise(resolve => setTimeout(resolve, 3000))
28+
trigger: ready
2429
}
2530
})
2631
```
@@ -87,3 +92,16 @@ const myScript = useScript('/script.js', {
8792
trigger: new Promise(resolve => setTimeout(resolve, 3000))
8893
})
8994
```
95+
96+
## Ref
97+
98+
You can use a ref to trigger the loading of a script. This is useful for any other custom trigger you might want to use.
99+
100+
```ts
101+
const myRef = ref(false)
102+
const myScript = useScript('/script.js', {
103+
trigger: myRef
104+
})
105+
// ...
106+
myRef.value = true
107+
```

package.json

+10-11
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
"@types/stripe-v3": "^3.1.33",
7373
"@types/vimeo__player": "^2.18.3",
7474
"@types/youtube": "^0.1.0",
75-
"@unhead/vue": "1.11.1",
75+
"@unhead/vue": "1.11.5",
7676
"@vueuse/core": "^11.0.3",
7777
"consola": "^3.2.3",
7878
"defu": "^6.1.4",
@@ -84,7 +84,7 @@
8484
"pathe": "^1.1.2",
8585
"pkg-types": "^1.2.0",
8686
"semver": "^7.6.3",
87-
"shiki": "1.16.2",
87+
"shiki": "1.17.6",
8888
"sirv": "^2.0.4",
8989
"std-env": "^3.7.0",
9090
"third-party-capital": "2.3.0",
@@ -98,10 +98,10 @@
9898
"@nuxt/devtools-ui-kit": "^1.4.2",
9999
"@nuxt/eslint-config": "^0.5.7",
100100
"@nuxt/module-builder": "^0.8.4",
101-
"@nuxt/test-utils": "3.14.1",
101+
"@nuxt/test-utils": "3.14.2",
102102
"@types/semver": "^7.5.8",
103103
"@typescript-eslint/typescript-estree": "^8.5.0",
104-
"@unhead/schema": "1.11.1",
104+
"@unhead/schema": "1.11.5",
105105
"acorn-loose": "^8.4.0",
106106
"bumpp": "^9.5.2",
107107
"changelogen": "^0.5.5",
@@ -119,15 +119,14 @@
119119
"resolutions": {
120120
"@nuxt/schema": "3.13.0",
121121
"@nuxt/scripts": "workspace:*",
122-
"@unhead/dom": "1.11.1",
123-
"@unhead/schema": "1.11.1",
124-
"@unhead/shared": "1.11.1",
125-
"@unhead/ssr": "1.11.1",
126-
"@unhead/vue": "1.11.1",
122+
"@unhead/dom": "1.11.5",
123+
"@unhead/schema": "1.11.5",
124+
"@unhead/shared": "1.11.5",
125+
"@unhead/ssr": "1.11.5",
126+
"@unhead/vue": "1.11.5",
127127
"nuxt": "^3.13.1",
128128
"nuxt-scripts-devtools": "workspace:*",
129-
"shiki": "1.10.3",
130-
"unhead": "1.11.1",
129+
"unhead": "1.11.5",
131130
"vue": "^3.5.5",
132131
"vue-router": "^4.4.5"
133132
}

playground/pages/third-parties/youtube/multiple.vue

+3
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ function changeVideo() {
1010

1111
<template>
1212
<div>
13+
<NuxtLink to="/third-parties/youtube/nuxt-scripts" class="block underline mb-5">
14+
Single YouTube Player
15+
</NuxtLink>
1316
<div>
1417
<ScriptYouTubePlayer :video-id="videoid" above-the-fold>
1518
<template #awaitingLoad>

playground/pages/third-parties/youtube/nuxt-scripts.vue

+3
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ function changeVideo() {
1010

1111
<template>
1212
<div>
13+
<NuxtLink to="/third-parties/youtube/multiple" class="block underline mb-5">
14+
Multiple YouTube Players
15+
</NuxtLink>
1316
<div>
1417
<ScriptYouTubePlayer :video-id="videoid" above-the-fold>
1518
<template #awaitingLoad>

0 commit comments

Comments
 (0)