# useNavigation()

> 

Use `useNavigation()` to observe client navigation state.

```ts
const navigation = useNavigation()
```

## Exposed state

- `state`
- `location`
- `previousLocation`
- `action`
- `isLoading`
- `isSubmitting`
- `isNavigating`

## State values

- `idle`
- `loading`
- `submitting`
- `navigating`

## When to use it

- disable UI during navigation
- show local pending indicators outside `loading.*`
- inspect navigation transitions for analytics or debugging
