Navegação e Roteamento
React Router para Web
No desenvolvimento de aplicações web com React, a navegação entre diferentes páginas ou componentes é gerenciada por bibliotecas como o React Router. O React Router é uma solução completa que permite gerenciar rotas, navegando entre diferentes views dentro de uma aplicação de forma intuitiva e eficiente.
-
Instalação do React Router:
- Para começar a usar o React Router em sua aplicação React, primeiro você precisa instalá-lo:
npm install react-router-dom
- Para começar a usar o React Router em sua aplicação React, primeiro você precisa instalá-lo:
-
Configurando Rotas:
- As rotas são configuradas dentro de um componente
Router
, geralmente oBrowserRouter
para aplicações web. Você define cada rota usando o componenteRoute
.
import React from 'react'; import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; import Home from './Home'; import About from './About'; function App() { return ( <Router> <Switch> <Route exact path="/" component={Home} /> <Route path="/about" component={About} /> </Switch> </Router> ); } export default App;
- As rotas são configuradas dentro de um componente
-
Navegação entre Páginas:
- Para navegar entre as páginas, você pode usar o componente
Link
fornecido pelo React Router, que substitui o uso tradicional de tags<a>
.
import React from 'react'; import { Link } from 'react-router-dom'; function Navigation() { return ( <nav> <Link to="/">Home</Link> <Link to="/about">About</Link> </nav> ); } export default Navigation;
- Para navegar entre as páginas, você pode usar o componente
-
Rotas Aninhadas:
- O React Router também suporta rotas aninhadas, permitindo que você defina sub-rotas dentro de outras rotas.
function Dashboard() { return ( <Switch> <Route path="/dashboard/profile" component={Profile} /> <Route path="/dashboard/settings" component={Settings} /> </Switch> ); }
React Navigation para Mobile
No React Native, a navegação é gerenciada pela biblioteca React Navigation, que fornece uma solução poderosa e flexível para navegação em aplicações móveis. React Navigation suporta diferentes tipos de navegação, como pilhas, abas e gavetas.
-
Instalação do React Navigation:
- Para instalar o React Navigation, você precisa instalar o pacote principal e as dependências necessárias:
npm install @react-navigation/native npm install @react-navigation/native-stack npm install react-native-screens react-native-safe-area-context
- Para instalar o React Navigation, você precisa instalar o pacote principal e as dependências necessárias:
-
Configurando o Navegador de Pilha (Stack Navigator):
- O navegador de pilha é um dos tipos mais comuns de navegação, onde as telas são empilhadas uma sobre a outra.
import React from 'react'; import { NavigationContainer } from '@react-navigation/native'; import { createNativeStackNavigator } from '@react-navigation/native-stack'; import HomeScreen from './HomeScreen'; import DetailsScreen from './DetailsScreen'; const Stack = createNativeStackNavigator(); function App() { return ( <NavigationContainer> <Stack.Navigator initialRouteName="Home"> <Stack.Screen name="Home" component={HomeScreen} /> <Stack.Screen name="Details" component={DetailsScreen} /> </Stack.Navigator> </NavigationContainer> ); } export default App;
-
Navegação entre Telas:
- Para navegar entre telas, você pode usar o hook
useNavigation
ou acessar diretamente a propnavigation
disponível em cada tela.
import React from 'react'; import { Button } from 'react-native'; import { useNavigation } from '@react-navigation/native'; function HomeScreen() { const navigation = useNavigation(); return ( <Button title="Go to Details" onPress={() => navigation.navigate('Details')} /> ); } export default HomeScreen;
- Para navegar entre telas, você pode usar o hook
-
Navegadores de Abas e Gavetas:
- O React Navigation também suporta outros tipos de navegação, como abas (
BottomTabNavigator
) e gavetas (DrawerNavigator
), que podem ser usados para criar layouts mais complexos.
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs'; import { createDrawerNavigator } from '@react-navigation/drawer'; const Tab = createBottomTabNavigator(); const Drawer = createDrawerNavigator();
- O React Navigation também suporta outros tipos de navegação, como abas (
Navegação Avançada: Tabs, Drawers, e Stack Navigation
React Navigation é altamente flexível, permitindo a combinação de diferentes tipos de navegadores para criar fluxos de navegação complexos em aplicativos móveis.
-
Combinação de Navegadores:
- Você pode combinar navegadores de pilha, abas e gavetas para criar uma experiência de usuário rica e intuitiva.
function App() { return ( <NavigationContainer> <Drawer.Navigator> <Drawer.Screen name="Home" component={HomeStack} /> <Drawer.Screen name="Settings" component={SettingsScreen} /> </Drawer.Navigator> </NavigationContainer> ); } function HomeStack() { return ( <Stack.Navigator> <Stack.Screen name="Home" component={HomeScreen} /> <Stack.Screen name="Profile" component={ProfileScreen} /> </Stack.Navigator> ); }
-
Configurações e Opções:
- Cada tipo de navegador suporta uma ampla variedade de opções para personalizar a navegação, como cabeçalhos personalizados, animações de transição, entre outros.
<Stack.Screen name="Details" component={DetailsScreen} options={{ title: 'Detalhes', headerStyle: { backgroundColor: '#f4511e' } }} />
Conclusão
A navegação é um aspecto essencial no desenvolvimento de aplicações tanto para web quanto para mobile. React Router e React Navigation fornecem as ferramentas necessárias para implementar fluxos de navegação eficientes e intuitivos, seja em aplicações web ou móveis. No próximo tópico, exploraremos o gerenciamento de estado em React e React Native.