React Router Flashcards

1
Q

React router

A
é um pacote não nativo do React, serve para criar estrutura de Rotas da aplicação.

Serve para a aplicação ter varias paginas;

npm i react-routerd
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Pra começar com o React Router

A
precisamos importar 3 componentes de 'react-router-dom;
BrowserRoute: É o componente pai, que irá sincronizar a url com os demais componentes, armazenando dados de historico
O BrowserRoute também limita a area de mudança dos componentes dinamicos (Troca de paginas), tudo fora dele permanece intacto, como uma master page;
Routes
Route

import {BrowserRoute, Routes, Route} from 'react-router-dom';

<div>
	<H1>Tudo fora do Browser será repetido, como uma master page</H1>
	<BrowserRoute>
		<Routes>
			<Route path="/" element={<Home />} />
			<Route path="/QuemSomos" element={<QuemSomos />} />
			<Route path="/Lojas" element={<Lojas />} />
		</Routes>
	</BrowserRoute>
</div>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Para Navegar entra paginas (Componentes utilizando o BrowserRoute, Routes e Route;

A
Precisamos usar o componente Link;

import {Link} from 'react-router-dom';

<Link to="/QuemSomos">Quem Somos</Link>

<BrowserRoute>

	/*Posso colocar codigo repetido em cada rota aqui, fora de Routes*/
	<Link to="/QuemSomos">Quem Somos</Link> 
	
	<Routes>
		<Route path="/" element={<Home />} />
		<Route path="/QuemSomos" element={<QuemSomos />} />
		<Route path="/Lojas" element={<Lojas />} />
	</Routes>
	
</BrowserRoute>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Rotas Dinamicas

A
Basta criar uma nota Rota <Route>

<BrowserRoute>
	<Routes>
		<Route path="/produtos/:id" element={<Home />} />
	</Routes>
</BrowserRoute>

//Para Acessar pelo link, basta subistituir o :id pelo valor
<Link to="/produtos/1">Quem Somos</Link> 
<Link to={`/produtos/{$variavel}`}>Quem Somos</Link>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hook useParams do ‘react-router-dom’

A
Esse hook retorna todos os dados que foram passados como parametros de url 

url dinamica: produtos/:id 
url clicada: produtos/2

let {id } - useParams() // dentro do componente carregado pelo browser
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Hook useSearchParams do ‘react-router-dom’

A
Esse hook retorna todos os dados que foram passados como parametros de url como query String 

url: produtos
url clicada: produtos?nome=lata

let [searchParams] - useSearchParams() // dentro do componente carregado pelo browser
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Nested Route

A
produtos/:id 
produtos/:id/detalhes 

<Link to="/produtos/1">Quem Somos</Link> 
<Link to={`/produtos/1/info`}>Informações</Link> 

<BrowserRoute>
	<Routes>
		<Route path="/produtos/:id" element={<Produto />} />
		<Route path="/produtos/:id/info" element={<Info />} />
	</Routes>
</BrowserRoute>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Pagina de Not Foud

A
<BrowserRoute>
	<Routes>
		<Route path="*" element={<PaginaPadraoNotFound />} />
	</Routes>
</BrowserRoute>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Link Ativo ( Link da Pagina atual )

A
Devemos usar o NavLink e usar o comportamento padrão, mas se quiser personalizar o comportamento css do ativo, então devemos usar o isActive em uma arrow
function

<NavLink to="/produtos/1" className={(isActive) =>(isActive?'classe-ativo':'classe-nao-ativa')} >Quem Somos</NavLink>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Redirecionamento do usuario dentro de rotas, usando o hook do ‘react-router-dom’

A
let navigate = useNavigate()
navigate('/pagina')
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Controlando redirecionamneto do <Route></Route>

A
<Route path="/PaginaAntiga" element={<Navigate to="/NovaPagina" />} />
How well did you know this?
1
Not at all
2
3
4
5
Perfectly