Current collected state Current
Observed since 20 Oct, 21:32 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
9466-utm-tracker
Vue 3 hooks for handling UTM parameters in URLs and storing them in cookies
Vue 3 hook,用于处理 URL 中的 utm_source 参数并存储到 cookie 中。
npm install 9466-utm-tracker
这个 hook 需要在 Vue Router 环境中使用,因为它依赖于 Vue Router 来获取 URL 参数。
// 在你的 router/index.ts 中
import { createRouter, createWebHistory } from "vue-router";
const router = createRouter({
history: createWebHistory(),
routes: [
// 你的路由配置
],
});
export default router;
import { useUtm } from "9466-utm-tracker";
export default {
setup() {
const { utmSource } = useUtm({
cookieExpireDays: 30, // 可选,默认30天
cookieDomain: ".example.com", // 可选
cookiePath: "/", // 可选,默认'/'
});
// utmSource 是一个 ref 对象,包含 utm_source 的值
console.log(utmSource.value); // 例如: 'google'
},
};
hook 会自动:
支持以下格式的 URL:
http://example.com/#/path?utm_source=googlehttp://example.com/path?utm_source=googleutm_source 参数会直接存储在名为 _9466_utm 的 cookie 中,例如:
_9466_utm=google
主函数,返回一个包含 utm_source 和相关方法的对象。
interface UseUtmOptions {
cookieExpireDays?: number; // cookie 过期天数,默认 30
cookieDomain?: string; // cookie 域名
cookiePath?: string; // cookie 路径
}
{
utmSource: Ref<string>; // 响应式的 utm_source 值
getUtmFromUrl: () => string; // 从当前 URL 获取 utm_source 的方法
getUtmFromCookie: () => string; // 从 cookie 获取 utm_source 的方法
}
MIT
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
js-cookieEnvironment{
"local_name": "js-cookie",
"alias": false,
"peer_metadata": null
} | ^3.0.5 | runtime |
vueEnvironment{
"local_name": "vue",
"alias": false,
"peer_metadata": null
} | ^3.5.13 | development |
jsdomEnvironment{
"local_name": "jsdom",
"alias": false,
"peer_metadata": null
} | ^26.0.0 | development |
vitestEnvironment{
"local_name": "vitest",
"alias": false,
"peer_metadata": null
} | ^3.0.9 | development |
typescriptEnvironment{
"local_name": "typescript",
"alias": false,
"peer_metadata": null
} | ^5.8.2 | development |
vue-routerEnvironment{
"local_name": "vue-router",
"alias": false,
"peer_metadata": null
} | ^4.5.0 | development |
@types/nodeEnvironment{
"local_name": "@types/node",
"alias": false,
"peer_metadata": null
} | ^22.13.10 | development |
@vue/test-utilsEnvironment{
"local_name": "@vue/test-utils",
"alias": false,
"peer_metadata": null
} | ^2.4.6 | development |
@types/js-cookieEnvironment{
"local_name": "@types/js-cookie",
"alias": false,
"peer_metadata": null
} | ^3.0.6 | development |
@testing-library/vueEnvironment{
"local_name": "@testing-library/vue",
"alias": false,
"peer_metadata": null
} | ^8.1.0 | development |
vueEnvironment{
"local_name": "vue",
"alias": false,
"peer_metadata": null
} | ^3.0.0 | peer |
vue-routerEnvironment{
"local_name": "vue-router",
"alias": false,
"peer_metadata": null
} | ^4.0.0 | peer |
Source distribution
{
"shasum": "9d5bded68cc6310619fe26e9f6455d84caad3a1e",
"tarball": "https://registry.npmjs.org/9466-utm-tracker/-/9466-utm-tracker-1.4.0.tgz",
"fileCount": 6,
"integrity": "sha512-agCwkjQM5UP9VCawO28QtJWpQ82Rt9mYjayi4aXG5AIvmPKmt5UvnYAWxunmBPuzgjeX34j0Ni9pPqoG9S8WDg==",
"signatures": [
{
"sig": "MEQCIDnqPpWs/o42CctCZd2dAsKob1Ix/RkDqlG2Qh267m54AiAKD39PdtgASCbtJZUklOLs5Jg84MH4Z18EY+0gzx41ig==",
"keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
}
],
"unpackedSize": 7525
}Observed since 20 Oct, 21:32 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:fcb021b26bb809a33e65d3e0b7df3e4bd5c8bf635715e168334a2ab1dec91dce