Reacciona rindiendo la información apropiada sobre el DOM usando su estructura de componentes. El enrutamiento del lado del cliente en React ayuda a mantener la experiencia de usuario sin problemas que promete una aplicación típica de una sola página. Esto se logra a través de una biblioteca externa de React llamada React Router.
React Router
El enrutador de Reacción utiliza un enrutamiento dinámico para garantizar que el enrutamiento se realice tal como lo solicita el usuario. Esto también significa que todos los componentes requeridos también se renderizan sin flashes de pantalla blanca o recarga de página.
Establecimiento
Asegúrate de que tienes Nodejs y npm instalados en tu máquina (al menos la versión 8 o superior) junto con un editor de código y un navegador web (preferiblemente Chrome o Firefox).
Crear un nuevo proyecto usando create-react-app:
1npx create-react-app react-routing
Shell
Limpiar la plantilla del proyecto eliminando logo.svg, todas sus importaciones relevantes, y algo de calderilla dentro de App.js. Tu App.js debería verse así:
1234567891011importReactfrom$0027react$0027;functionApp(){return(<divclassName="App"</div>);}exportdefaultApp;
jsx
Instale el paquete react-router-dom usando el siguiente comando dentro del directorio raíz:
1npm instalar react-router-dom
Estilos
Ponga los siguientes estilos dentro de index.css:
1234567891011121314151617181920212223242526272829303132333435body{margin:0;font-family: -sistema de manzana, BlinkMacSystemFont,$0027Segoe UI$0027,$0027Roboto$0027,$0027Oxygen$0027,$0027Ubuntu$0027,$0027Cantarell$0027,$0027Fira Sans$0027,$0027Droid Sans$0027,$0027Helvetica Neue$0027, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;}. App{max-ancho:400px;margen:30px auto;text-align: center;}nav{padding:5px;background:rgb(151,150,150);color:#ffffff;}nav ul{padding:0;}nav ul li{display: inline-block;margin:010px;cursor: puntero;padding:5px;font-weight:600;}. nav-link{color:#ffffff;text-decoration: none;}
css
Creación de los componentes de la interfaz de usuario
Todos los componentes de la interfaz de usuario harán que
indicando qué componente se está emitiendo actualmente por esa ruta.
Simplemente importa React desde el núcleo, crea un componente funcional apátrida y asegúrate de exportarlo al final. Así es como debería verse About.js:
1234567891011importReactfrom$0027react$0027;constAbout=()=importReactfrom$0027react$0027;constAbout=()=importReactfrom$0027react$0027;constAbout=()=
jsxDe manera similar, Contact.js se verá así:
1234567891011importReactfrom$0027react$0027;constContact=()=importReactfrom$0027react$0027;constContact=()=importReactfrom$0027react$0027;constContact=()=
jsxFinalmente, puedes crear el componente de Hogar de la misma manera:
1234567891011importReactfrom$0027react$0027;constHome=()=importReactfrom$0027react$0027;constHome=()=
jsxEl módulo de enrutamiento
Los tres componentes importantes del módulo de enrutamiento son , , y .
Todo lo que hay dentro indica información sobre el enrutamiento. Es un componente de envoltura para todos los componentes que usarán el enrutamiento del lado del cliente para renderizarse, e informa a React sobre eso.
asegura que sólo se maneje una ruta a la vez, y el componente nos dice qué componente se rendirá en cada ruta.
Para una aplicación grande, es más lógico crear un componente separado, pero por ahora, es conveniente poner todas las rutas dentro de App.js.
1234567891011121314151617181920212223importarReacción de $0027reaccionar$0027;importarNavbarde$0027./Componentes/Navbar$0027;importar{BrowserRouter,Switch,Route}de$0027reaccionar-router-dom$0027;importarHomefrom$0027./Componentes/Home$0027;importarContactofrom$0027./Componentes/Contactos$0027;importarAboutfrom$0027. /Componentes/Sobre$0027;functionApp(){return(<divclassName="App"><BrowserRouter Routeexactpath="/contacto "component={Contacto};};/Ruta=;}Route="/Acerca de "component={Acerca de
jsxLa etiqueta lleva dos accesorios. Uno es la ruta, que simplemente toma una cuerda que indica la ruta de ese componente y un componente de puntal que da salida a ese componente o lo renderiza cuando el usuario va a esa ruta en particular. La propiedad exacta asegura que el componente se renderice sólo cuando la ruta coincide con la cadena exacta mencionada en el camino y ninguna subcadena o supercadena de esa ruta podrá renderizar ese componente.
Por último, para asegurarse de que estas rutas se activan desde la interfaz de usuario, establecer estas rutas dentro de Navbar.js . En lugar de la tradicional etiqueta de ancla (), react-router-dom nos proporciona la etiqueta, que funciona exactamente igual que la etiqueta de ancla pero evita la acción de recarga de la página por defecto.
1234567891011121314151617importReactfrom$0027react$0027;import{Link}from$0027react-router-dom$0027;constNavbar=()=[;{return(<nav <ul>li><Linkto="/"className="nav-link"``Home</Link li><Linkto="/sobre "className="nav-link"`;Acerca de</Link;³³³³³"/li>li;~ Linkto="/contacto "className="nav-link"³³³"Contacto</Link
jsx