React suite es una biblioteca de componentes de React que tiene un diseño de interfaz de usuario sensato y una experiencia de desarrollo amigable. Es compatible con todos los principales navegadores. Proporciona componentes preconstruidos de React que se pueden usar fácilmente en cualquier aplicación web.
En este artículo, aprenderemos sobre la navegación lateral personalizada de React Suite Sidenav. Para crear una navegación lateral personalizada, podemos usar paneles, divisores, etc. para personalizar un componente sidenav.
Navegación lateral personalizada:
- Panel: se utiliza para establecer la propiedad del panel para personalizar un área del panel.
- Divisor: se utiliza para establecer la propiedad del divisor y establecer una línea de división.
Accesorios de navegación lateral:
- as: se utiliza para especificar componentes personalizados de la barra de navegación.
- apariencia: Se utiliza para la apariencia sidenav. Puede tener los valores de ‘predeterminado’, ‘inverso’ y ‘sutil’.
- classPrefix: se utiliza para indicar el prefijo de la clase CSS del componente. El valor predeterminado es ‘barra de navegación’.
- defaultOpenKeys: se utiliza para indicar el menú Abrir que corresponde a la tecla de evento desplegable.
- expandido: Se utiliza para indicar si expandir o no el Sidenav.
- onOpenChange: es una función de devolución de llamada de apertura de menú que cambió.
- openKeys: se utiliza para indicar el menú Abrir que corresponde a la tecla de evento desplegable que se controla.
Creación de la aplicación React e instalación del módulo:
Paso 1: Cree una aplicación React usando el comando dado:
npm create-react-app projectname
Paso 2: después de crear su proyecto, muévase a él usando el comando dado:
cd projectname
Paso 3: ahora instale el paquete de Nodes rsuite usando el comando dado:
npm install rsuite
Estructura del proyecto: ahora la estructura de su proyecto debería tener el siguiente aspecto:
Sintaxis:
// Import statement import { Nav, Sidenav } from "rsuite/"; // App.JS file function() { <Sidenav> <Sidenav.Body> <Nav> <Nav.Item>...</Nav.Item> <Nav.Item divider /> <Nav.Item panel style={{ padding: "20px 10px", color: "black" }}> ... </Nav.Item> </Nav> <Sidenav.Body> </Sidenav> }
Ejemplo 1: El siguiente ejemplo muestra un componente de navegación lateral personalizado que usa divisores y paneles.
Javascript
import { useState } from "react"; import "rsuite/dist/rsuite.min.css"; import { Nav, Sidenav } from "rsuite/"; import Home from "@rsuite/icons/legacy/Home"; import FileCodeO from "@rsuite/icons/legacy/FileCodeO"; import File from "@rsuite/icons/legacy/File"; import { Code, Pin } from "@rsuite/icons"; import Info from "@rsuite/icons/legacy/Info"; export default function App() { const [expand, setExpand] = useState(true); const [activeKey, setActiveKey] = useState("1"); return ( <center> <div> <h2>GeeksforGeeks</h2> <h4 style={{ color: "green" }}>React Suite Custom SideNav</h4> <div style={{ marginTop: 20, width: 240 }}> <Sidenav expanded={expand} appearance="inverse "> <Sidenav.Body> <Nav activeKey={activeKey} onSelect={setActiveKey}> <Nav.Item eventKey="1" icon={<Home />}> Home </Nav.Item> <Nav.Item eventKey="1" icon={<Info />}> About </Nav.Item> <Nav.Menu eventKey="3" title="Main Content" icon={<Pin/>}> <Nav.Item divider /> <Nav.Item panel style={{ padding: "20px 10px", color: "black" }} > Tutorials </Nav.Item> <Nav.Item eventKey="3-1">Programming</Nav.Item> <Nav.Item eventKey="3-2">Web Tech</Nav.Item> <Nav.Item eventKey="3-3">Data Science</Nav.Item> <Nav.Item eventKey="3-4" style={{ padding: "20px 10px", color: "black" }} > Practice </Nav.Item> <Nav.Item eventKey="4-1">Problem of the Day</Nav.Item> <Nav.Item eventKey="4-2">Company wise</Nav.Item> <Nav.Item eventKey="4-3" style={{ padding: "20px 10px", color: "black" }} > Algorithms </Nav.Item> <Nav.Item eventKey="4-1">Searching</Nav.Item> <Nav.Item eventKey="4-2">Sorting</Nav.Item> <Nav.Item eventKey="4-3">Greedy</Nav.Item> </Nav.Menu> </Nav> </Sidenav.Body> <Sidenav.Toggle expanded={expand} onToggle={(expanded) => setExpand(expanded)} /> </Sidenav> </div> </div> </center> ); }
Producción:
Ejemplo 2: El siguiente ejemplo muestra un componente de navegación lateral personalizado que utiliza un encabezado, divisores y paneles personalizados.
Javascript
import { useState } from "react"; import "rsuite/dist/rsuite.min.css"; import { Nav, Sidenav } from "rsuite/"; import Home from "@rsuite/icons/legacy/Home"; import FileCodeO from "@rsuite/icons/legacy/FileCodeO"; import File from "@rsuite/icons/legacy/File"; import { Code, Pin } from "@rsuite/icons"; import Info from "@rsuite/icons/legacy/Info"; export default function App() { const [expand, setExpand] = useState(true); const [activeKey, setActiveKey] = useState("1"); return ( <center> <div> <h2>GeeksforGeeks</h2> <h4 style={{ color: "green" }}>React Suite Custom SideNav</h4> <div style={{ marginTop: 20, width: 240 }}> <Sidenav expanded={expand}> <Sidenav.Header> <div style={{ padding: 15, fontSize: 20, background: "#0AA92E", color: "#fff", }} > GeeksforGeeks </div> </Sidenav.Header> <Sidenav.Body> <Nav activeKey={activeKey} onSelect={setActiveKey}> <Nav.Item eventKey="1" icon={<Home />}> Home </Nav.Item> <Nav.Item eventKey="1" icon={<Info />}> About </Nav.Item> <Nav.Menu eventKey="3" title="Main Content" icon={<Pin />}> <Nav.Item divider /> <Nav.Item panel style={{ padding: "20px 10px", color: "black" }} > Tutorials </Nav.Item> <Nav.Item eventKey="3-1">Programming</Nav.Item> <Nav.Item eventKey="3-2">Web Tech</Nav.Item> <Nav.Item eventKey="3-3">Data Science</Nav.Item> <Nav.Item eventKey="3-4" style={{ padding: "20px 10px", color: "black" }} > Practice </Nav.Item> <Nav.Item eventKey="4-1">Problem of the Day</Nav.Item> <Nav.Item eventKey="4-2">Company wise</Nav.Item> <Nav.Item eventKey="4-3" style={{ padding: "20px 10px", color: "black" }} > Algorithms </Nav.Item> <Nav.Item eventKey="4-1">Searching</Nav.Item> <Nav.Item eventKey="4-2">Sorting</Nav.Item> <Nav.Item eventKey="4-3">Greedy</Nav.Item> </Nav.Menu> </Nav> </Sidenav.Body> <Sidenav.Toggle expanded={expand} onToggle={(expanded) => setExpand(expanded)} /> </Sidenav> </div> </div> </center> ); }
Producción:
Referencia: https://rsuitejs.com/components/sidenav/#custom-side-navigation
Publicación traducida automáticamente
Artículo escrito por tarunsinghwap7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA