You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Nuxt 3中监听路由变化?附Nuxt 2实现示例

Nuxt 3 监听路由变化的实现方法

在Nuxt 3中,你可以通过以下几种方式实现路由变化监听,适配Vue 3的Composition API特性:

1. 使用useRoute配合watch监听(最贴近Nuxt 2的写法)

通过Vue Router提供的useRoute获取当前路由实例,再用Vue的watch监听路由变化:

<script setup>
import { watch } from 'vue'
import { useRoute } from 'vue-router'

const route = useRoute()

// 监听路由实例变化
watch(route, (to, from) => {
  console.log('route change to', to)
  console.log('route change from', from)
}, { deep: true }) // 若需要监听路由参数的深层变化,添加deep配置
</script>

2. 使用路由钩子onBeforeRouteUpdate

如果需要在路由更新前执行逻辑,可以使用Vue Router的onBeforeRouteUpdate钩子:

<script setup>
import { onBeforeRouteUpdate } from 'vue-router'

onBeforeRouteUpdate((to, from) => {
  console.log('route will update to', to)
  console.log('route update from', from)
})
</script>

3. 兼容选项式API写法(不推荐,更适合Composition API)

如果你习惯Nuxt 2的选项式API写法,Nuxt 3也支持直接在组件选项中监听$route:

<script>
export default {
  watch: {
    '$route'(to, from) {
      console.log('route change to', to)
      console.log('route change from', from)
    }
  }
}
</script>

内容的提问来源于stack exchange,提问作者Eugenio Cervantes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 11:00:42