首页 >> 前端开发 >> vue3 setup 监听url变化
vue3 setup 监听url变化
发布时间: 2024年7月17日 | 浏览:
| 分类:前端开发
方法 1: 使用 Vue Router 的导航守卫
-
全局守卫: 你可以在应用的入口文件中(通常是
main.js
或main.ts
)设置全局守卫。javascriptimport { createRouter, createWebHistory } from 'vue-router'; const router = createRouter({ history: createWebHistory(), routes: [ // 定义路由 ] }); router.beforeEach((to, from, next) => { // 监听 URL 变化 console.log('路由变化:', from.path, '->', to.path); next(); }); export default router;
-
组件内守卫: 如果你只想在特定组件中监听 URL 变化,可以在该组件内使用
beforeRouteEnter
或beforeRouteUpdate
守卫。javascriptexport default { beforeRouteEnter(to, from, next) { console.log('路由变化:', from.path, '->', to.path); next(); }, beforeRouteUpdate(to, from, next) { console.log('路由变化:', from.path, '->', to.path); next(); }, };
方法 2: 使用 Vue 的响应式 API 监听 window.location
-
使用
watchEffect
或watch
:javascriptimport { watchEffect, ref } from 'vue'; export default { setup() { const url = ref(window.location.href); watchEffect(() => { // 监听 URL 变化 console.log('URL 变化:', url.value); }); // 监听 window 的 popstate 事件(如用户点击浏览器的前进或后退按钮) window.addEventListener('popstate', () => { url.value = window.location.href; }); // 返回响应式数据 return { url }; } };