---
title: useLocation
---
# `useLocation`
Type declaration
```tsx
declare function useLocation(): Location;
interface Location extends Path {
state: State;
key: string;
}
interface Path {
pathname: string;
search: string;
hash: string;
}
```
This hook returns the current [`location`][location] object. This can be useful if you'd like to perform some side effect whenever the current location changes.
```tsx
import * as React from 'react';
import { useLocation } from 'react-router-dom';
function App() {
let location = useLocation();
React.useEffect(() => {
// Google Analytics
ga('send', 'pageview');
}, [location]);
return (
// ...
);
}
```
## Properties
### `location.hash`
The hash of the current URL.
### `location.key`
The unique key of this location.
### `location.pathname`
The path of the current URL.
### `location.search`
The query string of the current URL.
### `location.state`
The state value of the location created by [``][link-state] or [`navigate`][navigate].
[link-state]: ../components/link#state
[location]: ../utils/location
[navigate]: ./use-navigate