En React, un componente es como un bloque de construcción para su interfaz de usuario (UI). Piense en ello como un pequeño fragmento de código reutilizable que define cómo debe verse y comportarse una parte particular de su página. Estos componentes permiten a los desarrolladores crear interfaces de usuario complejas combinando piezas simples, independientes y reutilizables.
En general, los componentes son esencialmente piezas de interfaz de usuario reutilizables y autónomas que pueden considerarse funciones que representan alguna parte de la interfaz de usuario.
Sé que puede haber algún conflicto entre las palabras autocontenido, piezas reutilizables y renderizados.
Demostremos uno por uno definiendo los componentes. ¡¿Opps?! Olvidé que no sabes cómo definir un componente simple. No te preocupes estoy aquí? para descomponer todas las cosas. entonces, ¿vamos a bucear-?
Suponga que está desarrollando una aplicación de comercio electrónico. En la aplicación, en varios lugares o en varias páginas, debe presentar una misma tarjeta de producto. Renderizar significa responder a la interfaz de usuario.
¿Ahora es tu momento? pensar? cómo puede mostrar la tarjeta de producto en su aplicación en varias páginas.
Tradicionalmente, al crear páginas web, los desarrolladores marcaban su contenido y añadían interacción añadiendo algo de javascript. Esto funcionó muy bien cuando las múltiples páginas marcadas con el mismo marcado no se reemplazaban en varias páginas no demasiado, lo que a veces te aburre y al mismo tiempo te cansa, además de que es difícil de depurar y administrar. Por lo tanto, existe la posibilidad de romper tu código y puede ser engorroso de administrar.
Aquí descubrirá la belleza de la arquitectura de componentes de React. React te permite crear componentes y usar tantos lugares como quieras.
// === Reminder === Components are regular javascript functions that can sprinkled with javascript
function ProductCard(){ return() }title of the product
price of the product
description of the product
// rest of info
vamos a romperlo-
Paso 1: declarar una función de JavaScript simple como nombre de ProductCard
Paso 2: El componente/función devuelve una etiqueta
// === Reminder === All tags must return under a parent tag or using a react fragment(>)
// === Reminder === React component name must start with a capital letter otherwise it won't treated as a component
El componente ProductCard devuelve una etiqueta div con h1,h2,p o algunas otras etiquetas necesarias escritas como HTML, pero internamente es Javascript. La sintaxis se llama JSX (javascript XML). No te preocupes, te lo explicaré más tarde.
// === Reminder === JSX is a syntax extension for javascript that lets you write HTML-like markup inside a javascript file which handles the logic of rendering and markup live together in the same place as components.
Ahora su componente está listo para usar. Por ejemplo, tienes una página de Producto y tienes que renderizar algunos productos.
//Products.js or jsx file function ProductCard(){ return() } function ProductPage(){ return(title of the product
price of the product
description of the product
// rest of info) } product page
Su navegador mostrará 3 veces la ProductCard, lo que significa que 3 tarjetas de productos han sido visibles para el navegador.
¿Hasta ahora, todo bien?. Hemos presentado correctamente la tarjeta de productos en la página del producto.
Ahora toca organizar el código:
Es posible que tenga uno o más componentes como ProductCard, ProductReviewCard, SimilarProductCard, etc., por lo que puede resultar engorroso declarar y administrar todos los componentes en un solo archivo. entonces, hagámoslo más organizado para administrarlo usando solo la estructura de archivos.
Creemos una carpeta reutilizable ya que es posible que ProductCard se haya utilizado desde varias páginas. Dentro de la carpeta reutilizable cree el archivo ProductCard.js/jsx.
//reusable/ProductCard.js or jsx file function ProductCard(){ return() }title of the product
price of the product
description of the product
// rest of info
Ahora hay un punto si separa el componente ProductCard cómo lo usará del archivo ProductPage. Sé que es posible que ya hayas entendido que sí, podemos exportar la función ProductCard desde ProductCardfile con el nombre o el valor predeterminado que prefieras.
//reusable/ProductCard.js or jsx file export default function ProductCard(){ return() }title of the product
price of the product
description of the product
// rest of info
ahora se puede utilizar desde el archivo ProductPage. simplemente importe la tarjeta de producto desde el archivo de página de producto y luego úsela tanto como desee.
//ProductPage.js or jsx file import ProducrCard from './reusable/ProductCard.js' function ProductPage(){ return() } product page
Mencioné anteriormente por qué se deberían utilizar los componentes: para su reutilización, separación de preocupaciones y modularidad.
Después de todo esto, habrás comprendido que también puedes anidar tu componente.
ok, echemos un vistazo de nuevo-?
crear una carpeta de diseño
cree la carpeta Encabezado en la carpeta Diseño y luego cree el archivo index.js dentro de la carpeta Encabezado
export default function Header(){ return() } Header
create `Footer` folder under the `Layout` folder then create `index.js` file inside `Footer` folder export default function Footer(){ return() } Footer
ahora cree el archivo index.js en la carpeta Diseño
import Header from './Header'; import Footer from './Footer'; export default function Layout(){ return() } page content
Espero que ya hayas descubierto la belleza de la arquitectura de componentes de reacción. Esto recién está comenzando y trató de generar interés en su mente.
¿Feliz codificación?
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3