Rotas com parâmetros e Query String
Para utilizar parâmetros de URL e Query String em rotas criadas com o React Router DOM, você pode utilizar os hooks useParams
e useSearchParams
. O useParams
é utilizado para acessar os parâmetros de URL definidos na rota, enquanto o useSearchParams
é utilizado para acessar os parâmetros de Query String.
Por exemplo, para acessar um parâmetro de URL em uma rota, você pode definir a rota com um parâmetro dinâmico, como /produto/:id
, e em seguida, utilizar o hook useParams
para acessar o valor do parâmetro na página de destino.
import { useParams } from 'react-router-dom';
function Produto() {
const { id } = useParams();
return (
<div>
<h1>Produto {id}</h1>
{/* Conteúdo do produto */}
</div>
);
}
Neste exemplo, o hook useParams
é utilizado para acessar o valor do parâmetro id
definido na rota /produto/:id
. O valor do parâmetro é então utilizado para renderizar o conteúdo do produto correspondente.
Para acessar parâmetros de Query String, você pode utilizar o hook useSearchParams
. O código abaixo ilustra como isso pode ser feito:
import { useSearchParams } from 'react-router-dom';
function Busca() {
const [searchParams, setSearchParams] = useSearchParams();
function handleSearch(event) {
event.preventDefault();
const query = event.target.elements.query.value;
setSearchParams({ q: query });
}
return (
<div>
<form onSubmit={handleSearch}>
<input type="text" name="query" />
<button type="submit">Buscar</button>
</form>
<p>Resultados para: {searchParams.get('q')}</p>
{/* Resultados da busca */}
</div>
);
}
Neste exemplo, o hook useSearchParams
é utilizado para acessar os parâmetros de Query String da URL. O valor do parâmetro q
é então utilizado para renderizar os resultados da busca correspondente.