useRouter()

Returns the Vue Router instance for programmatic navigation and guards.

Since Nuxt 3.0 Spec ↗

Syntax

const router = useRouter()

Returns

Router — Router instance with push, replace, back, go, beforeEach, etc.

Examples

<script setup lang="ts">
const router = useRouter()
function goHome() {
  router.push('/')
}
</script>
<script setup lang="ts">
const router = useRouter()
// Global guard registered from a component/plugin
router.beforeEach((to) => {
  if (to.meta.requiresAuth && !isLoggedIn()) return '/login'
})
</script>

Notes

For simple navigation prefer `navigateTo()`, which is SSR-safe and handles redirects in middleware correctly. Use `useRouter()` when you need router methods like `back()`, `go()`, or to register navigation guards. Calling `push` on the server has no effect; use `navigateTo`.

See also