Aprende React en 45 Minutos

deivchoi
1 May 202344:25

Summary

TLDRThis comprehensive video tutorial guides viewers through the fundamentals of React, a popular JavaScript library for building user interfaces. It covers key concepts like components, properties, state, events, and routing. The instructor creates a small demo page while explaining each concept step-by-step, enabling viewers to follow along and learn by building. With practical examples and clear explanations, this video serves as an excellent introduction for those new to React, equipping them with the essential skills to kickstart their journey in building dynamic and interactive web applications.

Takeaways

  • 💻 Setting up a React development environment involves creating a new project using Vite for better performance and efficiency.
  • 📚 Prerequisites for learning React include a basic understanding of HTML, CSS, and JavaScript, with resources available for beginners.
  • 📱 React components, properties, state, and events are fundamental concepts that enable dynamic and interactive web development.
  • 🎥 Demonstrating React concepts through building a simple demo page offers a practical approach to learning by applying concepts step by step.
  • 🔨 The create-react-app command, once common for starting new React projects, has been superseded by faster alternatives like Vite.
  • 🔧 Understanding file structure and configuration files is crucial for managing React projects and customizing the development environment.
  • 💎 React's JSX syntax allows embedding HTML within JavaScript, enhancing the developer's ability to create dynamic user interfaces.
  • 👥 Prop handling in React components facilitates the passing of data and functions between components, promoting reusable and maintainable code.
  • 📈 React Router enhances single-page applications by enabling client-side routing, allowing for efficient page transitions without reloading.
  • 📲 React's useState hook and event handling mechanisms offer powerful ways to manage state and build interactive applications.

Q & A

  • What is the purpose of this video?

    -The purpose of this video is to teach the basics of React, including components, properties, state, events, and more. The instructor aims to provide an initial understanding of React by building a small demonstration page.

  • What prerequisites are required for this React course?

    -The video mentions that to follow this course, you need to have knowledge of HTML, CSS, and JavaScript. If you are not familiar with these technologies, the instructor provides links to videos where you can learn them.

  • What is the recommended way to set up the development environment for a React project?

    -The video recommends using the Vite command `npm create vite@latest` to create a new React project. This command is faster than the previously used `npx` command, and it guides you through the process of setting up the project.

  • How are components created in React?

    -In React, components are typically created as JavaScript functions that return JSX (a syntax extension that allows embedding HTML-like code in JavaScript). Components start with a capital letter, and they can be exported and imported into other files.

  • What is the purpose of props in React components?

    -Props (short for properties) are used to pass data from a parent component to a child component. They allow components to be reusable by accepting different data values as input.

  • How can you render a list of items in React?

    -To render a list of items in React, you can use the `.map()` method to iterate over an array of data and render a component for each item. The video demonstrates how to map over an array of vehicle data to render a list of Card components.

  • What is the role of state in React components?

    -State in React components is used to manage internal data that can change over time. The video introduces the `useState` hook, which allows components to have their own state and update it, causing a re-render of the component with the new state.

  • How can you handle events in React components?

    -In React, you can handle events by defining event handler functions and passing them as props to the corresponding elements. The video demonstrates how to handle a click event on a button to toggle the state of a component.

  • What is client-side routing in React, and why is it useful?

    -Client-side routing in React allows you to simulate page changes without requesting a new page from the server each time. This maintains the state of JavaScript variables and provides a faster experience compared to server-side routing. The video introduces the react-router-dom library for implementing client-side routing.

  • How can you create dynamic routes in React based on data?

    -The video demonstrates how to create dynamic routes in React by iterating over an array of data (in this case, vehicles) and programmatically generating routes for each item. Each route corresponds to a specific component or view that displays the data for that item.

Outlines

00:00

📚 Introduction to React Basics

This segment introduces the React framework, emphasizing the necessity of HTML, CSS, and JavaScript knowledge as prerequisites. The instructor plans to use a simple demo page to teach React concepts such as components, props, state, and events. Viewers are guided through setting up their development environment using the 'create vite' command and selecting React as their framework. The video also covers installing dependencies and launching the project in a browser, establishing the foundation for a React-based project.

05:00

🔧 Setting Up and Exploring React Structure

The instructor dives deeper into the structure of a React project, explaining the significance of various files and folders such as 'src', '.jsx', '.gitignore', and 'package.json'. The focus shifts to creating a basic React component by demonstrating the removal of unnecessary parts from the default template and explaining JSX, the syntax for embedding HTML within JavaScript. This setup lays the groundwork for building more complex components and introduces CSS integration into React.

10:01

🏗️ Creating and Using React Components

In this part, the viewer learns how to create reusable React components. The instructor demonstrates this by developing a 'Card' component, illustrating how to pass props and structure components efficiently. The section reinforces understanding of JSX and React's modular nature, showing how to import and use components within other parts of the application. Additionally, the instructor introduces basic CSS styling to improve the component's appearance.

15:02

🎨 Styling and Flexbox in React

The instructor focuses on CSS styling within React, particularly using Flexbox to layout components. By adjusting properties like 'display', 'flex-wrap', and 'justify-content', the video shows how to control the spacing and alignment of components. This segment is pivotal for understanding how to apply CSS styles to React components to create visually appealing and responsive designs.

20:02

📋 Handling Lists and Data in React

This part of the video addresses managing dynamic lists in React. The instructor demonstrates how to render lists by mapping over an array of data, a common pattern for displaying dynamic content. The concept of key props in lists for performance optimization is also touched upon. Additionally, this section explains how to handle external data, such as from an API, making the application dynamic and interactive.

25:02

⚙️ Introduction to React State and Events

The video introduces the concept of state in React using the 'useState' hook, showcasing how to build interactive components. A 'ShowHide' component is developed to demonstrate toggling visibility based on user interaction, illustrating how state influences rendering and behavior. The tutorial covers event handling in React, such as click events, showcasing the dynamic capabilities of React components.

30:04

🔀 Introduction to Client-Side Routing in React

This segment introduces client-side routing using 'react-router-dom', which allows for navigation between different components without reloading the page. The instructor explains setting up routes and navigating between pages, maintaining the application state. This concept is crucial for building single-page applications (SPAs) that offer a seamless user experience.

35:05

🚀 Advanced Routing and Dynamic Pages in React

Building on previous routing concepts, the instructor demonstrates how to create dynamic routes for individual items from data arrays, such as products or articles. This approach enables the generation of unique pages based on item specifics, enhancing the application's interactivity and functionality. This part is essential for understanding how to manage larger sets of data and individual detail pages in React applications.

40:07

🔗 Linking Components and Finishing Touches

The final part focuses on linking different components using React Router's 'Link' component, allowing users to navigate through the application without manual URL entry. This section also touches upon the importance of CSS for styling individual pages and enhancing the overall user experience. The instructor concludes by highlighting the ease of expanding the application by adding new items to the data array, showcasing the scalable nature of React applications.

Mindmap

Keywords

💡React

React is a popular JavaScript library for building user interfaces, particularly single-page applications where you need a fast, interactive user experience. In the script, React is the central technology being taught, with the video tutorial covering fundamental concepts like components, props, state, and events. These are the building blocks for creating dynamic web applications, illustrating React's role in modern web development by allowing developers to build complex UIs from encapsulated pieces of code called components.

💡Component

A component in React is a reusable piece of the UI. It can be thought of as a JavaScript function or class that returns a React element (usually defined in JSX). Components can be simple and display static content, or complex and maintain their own state. The video script discusses creating, importing, and using components to build a demo page, showing how components are the building blocks of React applications.

💡Props

Props, short for properties, are a way of passing data from parent to child components in React. They are read-only, making them useful for configuring components with specific data. The script describes using props to customize components like cards with different titles and descriptions, demonstrating how props enable component reuse and customization without repeating code.

💡State

State in React refers to a set of data that determines the behavior of a component at a given point in time. Unlike props, state is mutable and can change over time, often in response to user actions. The script explains using the useState hook to manage state within components, such as showing or hiding elements based on user interaction, illustrating state's role in creating interactive and dynamic user interfaces.

💡Events

Events in React are actions that can be triggered by users or the system, such as clicks, mouse movements, or keyboard inputs. React allows developers to handle these events with event handlers, functions that execute in response to an event. The script shows adding click events to buttons to demonstrate changing component states, showcasing how React makes interactive UI development straightforward.

💡JSX

JSX is a syntax extension for JavaScript that looks similar to HTML. It allows developers to write HTML structures in the same file as JavaScript code, making the structure of component UIs more readable and expressive. The script mentions JSX when discussing creating components, highlighting how JSX simplifies defining the UI structure within React components.

💡vite

Vite is a modern frontend build tool that significantly improves the development experience by offering fast cold starts and updates. The script includes instructions for setting up a development environment using Vite, illustrating its role in creating a React project quickly and efficiently.

💡Hooks

Hooks are functions that let you hook into React state and lifecycle features from function components. They provide a way to use stateful logic and share it between components without changing the component hierarchy. The video script discusses the useState hook, a fundamental hook for managing state in functional components, demonstrating how hooks extend the functionality of React components without complex class syntax.

💡npm (Node Package Manager)

npm is a package manager for JavaScript, used to install, share, and manage dependencies in projects. In the script, npm is used to create a new React project using the Vite tool, illustrating how npm facilitates the management of project dependencies and the setup of development environments in modern web development.

💡Router

Router refers to a tool or library used in web development for navigating between pages or views within a single-page application (SPA) without refreshing the page. The script introduces React Router, demonstrating how to use it for client-side routing in React applications. This enables the creation of navigable, bookmarkable URLs that improve user experience and the overall structure of SPAs.

Highlights

In this video, I'll teach you the basics of React. We'll cover components, properties, state, events, and much more.

To start this course, you'll need knowledge of HTML, CSS, and JavaScript. If you're not familiar with these technologies, you can learn them from these videos.

The good thing about this course is that we'll be learning all these topics by building a small demo page, which is much better than seeing the topics separately.

We'll start by setting up our development environment using the 'npm create vite' command, which is faster than the old 'create-react-app' command.

We'll create our first React component, which is a reusable building block for our user interface.

We'll learn how to pass data to components using props (properties).

We'll dynamically render a list of components using the .map() function and data from an array.

We'll introduce state, which allows components to manage their own internal data and update the UI accordingly.

We'll learn how to handle events in React, such as clicking a button, and update the component's state based on user interactions.

We'll explore conditional rendering, which allows us to show or hide elements based on certain conditions.

We'll implement client-side routing using the React Router library, allowing us to create multiple views and navigate between them without refreshing the page.

We'll generate routes programmatically based on data from an array, demonstrating the power and flexibility of React.

We'll create individual pages for each vehicle, passing data through props and rendering dynamic content.

We'll add navigation links to our components, enabling users to navigate between pages without manually entering URLs.

The instructor emphasizes the power of React in building user interfaces, allowing for easy addition and modification of components and data without modifying the source code.

Transcripts

play00:00

en este vídeo les voy a enseñar las

play00:01

básicas de react vamos a ver componentes

play00:03

propiedades estado eventos y mucho más

play00:07

para este curso van a necesitar tener

play00:09

conocimientos de html css y javascript

play00:12

si no están familiarizados con estas

play00:13

tecnologías pueden aprenderlas en estos

play00:15

vídeos les dejo los enlaces en la

play00:17

descripción lo bueno de este curso es

play00:19

que vamos a ir aprendiendo todos estos

play00:21

temas Armando una pequeña página de

play00:23

demostración súper básica pero es mucho

play00:26

mejor que ver los temas por separado ya

play00:28

que podemos ir viendo los conceptos paso

play00:29

a paso a medida que los vamos aplicando

play00:31

el proyecto Bueno lo primero que vamos a

play00:33

tener que hacer es preparar nuestro

play00:35

entorno de desarrollo Así que van a ir a

play00:38

una carpeta donde tengan todos sus

play00:40

proyectos Yo acá tengo una que se llama

play00:41

YouTube que tiene los los proyectitos

play00:44

quedarme para YouTube y acá van a abrir

play00:46

la terminal hay varias formas de abrir

play00:48

una terminal una de ellas es escribiendo

play00:51

cmd acá en la línea de direcciones una

play00:54

vez hecho esto vamos a usar este Comando

play00:56

que aparece en la documentación de bite

play00:58

que es en ppm create vite y esto de acá

play01:02

que dice @latest es opcional porque creo

play01:05

que por defecto te va a instalar la

play01:07

última versión de vite

play01:10

y nos va a empezar a hacer algunas

play01:12

preguntas que vamos a tener que

play01:14

responder Como por ejemplo el nombre del

play01:16

proyecto yo lo voy a llamar curso react

play01:20

sí Uy curso react después acá te

play01:24

pregunta bueno framework Vanilla es

play01:26

javascript sin nada View react nosotros

play01:28

vamos a seleccionar react nos deja

play01:31

elegir entre

play01:33

javascriptsw que no sé qué es nosotros

play01:35

vamos a escribir javascript para

play01:37

mantenerlo sencillo y ahí está terminó

play01:39

mucho más rápido que el comando que se

play01:41

usaba antes que era mpx

play01:46

que es súper lento incluso ahora la

play01:48

documentación oficial de react te

play01:50

recomienda usar otros comandos que

play01:52

combina react con con otros frameworks

play01:56

pero no le vamos a dar bola a eso

play01:58

nosotros vamos a usar simplemente MB y

play02:00

se acabó bien ahora acá te dice que

play02:02

corras algunos comandos van a ver que en

play02:05

la carpeta donde

play02:07

corrimos la terminal se creó el proyecto

play02:09

Nosotros llamamos curso reality Así que

play02:11

lo vamos a encontrar por ese nombre acá

play02:12

y lo que la terminó te está diciendo que

play02:14

hagas ahora es que te cambies a ese

play02:16

directorio con este Comando y después

play02:18

bueno instales las dependencias y corras

play02:21

este Comando Así que yo lo que voy a

play02:22

hacer es cambiarme con c de curso react

play02:26

y lo vamos a hacer un poco diferente

play02:27

vamos a correr el visual Studio code con

play02:29

este Comando code punto y si no le

play02:32

funciona este Comando lo que pueden

play02:33

hacer es abrir el visual Studio coaching

play02:35

yo voy a cerrar esto para mostrarles

play02:36

Bueno lo que pueden hacer es abrir

play02:38

visual Studio code y simplemente

play02:39

arrastrar esta carpeta de esta forma

play02:41

para abrirla en el visual Studio code

play02:44

esta terminal No la vamos a necesitar

play02:45

más así que la cierro acá ya estamos en

play02:47

nuestro nuestro proyecto no que creamos

play02:50

con vite y vamos a abrir la terminal con

play02:52

control tilde o si no encuentran la

play02:55

tilde o no saben cómo hacerlo pueden ir

play02:57

a vista y acá les va a permitir abrir la

play03:00

terminal acá ya estamos en la terminal

play03:01

de nuestro proyecto Así que vamos a

play03:02

hacer lo que lo que nos indicó antes

play03:04

vite que hagamos que desinstalar las

play03:06

dependencias con mb install y después

play03:09

vamos a poder correr el proyecto lo que

play03:11

hacemos a continuación es correr el

play03:13

comando mpm

play03:15

y va a borrar nuestro proyecto nos dice

play03:18

que está en el puerto 51 73 Así que

play03:21

vamos a abrir el navegador y vamos a ir

play03:24

a local Host 51 73 otra opción es

play03:29

simplemente hacer control clic acá y te

play03:32

lo va a abrir en el navegador Recuerden

play03:34

que en este vídeo les voy a dar las

play03:35

básicas de react para que tengan unas

play03:37

herramientas iniciales pero si quieren

play03:39

profundizar aún más en los conceptos Les

play03:41

recomiendo fuertemente que vayan a

play03:43

inscribirse al curso de react en cover

play03:45

House en Google House van a disfrutar de

play03:47

clases en vivo dictadas por profesores

play03:49

expertos en la industria donde van a

play03:51

poder sacarse todas las dudas en el

play03:53

momento y van a tener desafíos semanales

play03:55

para que puedan ir practicando todo lo

play03:57

que van aprendiendo semana a semana y no

play03:59

sólo tienen cursos de programación sino

play04:01

que también pueden aprovechar los cursos

play04:03

de diseño USB marketing digital análisis

play04:06

de datos y muchos más y lo mejor de todo

play04:09

es que cuando terminas exitosamente un

play04:11

curso recibes un certificado validado

play04:13

por coderhouse que puedes poner en tu

play04:15

perfil de linkedin o compartir en tus

play04:17

redes sociales Si van a hacer un curso

play04:19

Les recomiendo que aprovechen la cover

play04:21

beca que ofrece un 70% de descuento

play04:24

sobre el valor del curso y se usan Mi

play04:26

código van a obtener un 15% de descuento

play04:30

adicional le dejo el link a Google House

play04:32

en la descripción del video si están un

play04:35

poco confundidos y se están preguntando

play04:37

qué es bite que es react básicamente

play04:39

pueden pensar que react es la librería

play04:42

que vamos a usar para armar la interfaz

play04:45

en el y vite es como un alguien que nos

play04:49

ayuda a crear proyectos react más rápido

play04:52

y podemos configurar y hacer todas esas

play04:56

cosas de cómo un ayudante extra no pero

play04:58

nosotros queremos empezar sin nada Así

play05:00

que lo que vamos a hacer es Borrar todo

play05:01

esto y crear una página en blanco así

play05:04

que vamos acá a nuestro proyecto y vamos

play05:07

a ver un poco que tienen estas carpetas

play05:11

source va a contener los archivos el

play05:14

código Fuente no a este punto de los

play05:17

puntos ya saben lo que son son archivos

play05:19

de estilos que ya conocen si es que

play05:23

saben css Pero estos puntos jsx lo vamos

play05:27

a ver en un ratito después estos

play05:29

archivos que tenemos acá si no los

play05:30

vieron nunca el punto git noir es una

play05:33

lista de nombres o direcciones que git

play05:37

revisa para saber cuáles son los

play05:40

archivos que tiene que ignorar acá de

play05:42

punto Jason por ahora ignórenlo y el

play05:44

Packers va a tener nuestros coma algunos

play05:46

comandos y las dependencias que necesita

play05:50

el proyecto escritas acá y evite.com.js

play05:54

para configurar el proyecto viste porque

play05:56

lo generamos convite no hay dos carpetas

play05:58

que no vimos que son esta a sets y

play06:00

public que lo único que tienen es un

play06:03

react punto svg que es esto de acá punto

play06:06

svg significa que está hecho un código

play06:08

no es una imagen jpg ni ni png sino que

play06:13

está hecha así con código y

play06:15

que permite eso es que esta imagen no la

play06:19

puedas agrandar todo lo que quieras y

play06:21

nunca se va a pixelar lo mismo con este

play06:23

de acá

play06:24

vite.sbg que es esto de acá el 20 punto

play06:27

svg lo vamos a dejar nosotros lo que

play06:29

vamos a hacer es borrar esta carpeta que

play06:30

tiene el real punto svg bueno lo vamos a

play06:33

usar y los dos archivos que nos quedan

play06:35

ver es el main.js x y el app.jsx la

play06:40

extensión punto jsx hace referencia a

play06:43

javascript xml que básicamente te

play06:46

permite poner etiquetas html adentro de

play06:50

un archivo javascript pero a mí conocer

play06:52

estos archivos los podemos generar como

play06:54

punto jsx y también los podemos usar

play06:56

como punto javascript y la realidad es

play06:58

que no cambia mucho en el archivo

play07:00

main.js x van a ver algunos imports al

play07:04

principio el importe reaction que

play07:06

básicamente importa Este objeto de la

play07:09

librería react

play07:10

que es otro objeto no importa de acá y

play07:13

después tenemos

play07:15

Chrome app que básicamente este archivo

play07:17

acá es este que viene acá el app.js X lo

play07:21

estamos importando para mostrarlo no

play07:23

después tenemos el importe de la hoja de

play07:25

estilos que se está acá reactdom punto

play07:27

create Root es un método donde le vas a

play07:30

pasar como el elemento Sí el elemento

play07:33

donde querés renderizar tu proyecto no

play07:35

este Root lo van a encontrar acá en

play07:38

index.html van a ver que hay un div que

play07:41

tiene Lady Root Entonces el main.jsx va

play07:44

a ir a buscar eso ven que dice document

play07:46

Element después de creator tenemos punto

play07:49

render una vez que tenemos el elemento

play07:51

tenemos que decirle que renderizar y va

play07:53

a renderizar esto de acá no tenemos un

play07:56

tag que es react punto Street Mode

play07:58

básicamente lo que va a hacer es

play08:00

mostrarnos errores en el navegador

play08:01

cuando nuestro código tenga errores y en

play08:04

realidad

play08:07

no que es una etiqueta que se abre y se

play08:10

cierra sola y representa nuestro

play08:12

componente

play08:13

app.js x y acá en a punto jsx tenemos

play08:17

nuestro primer componente react no se

play08:20

sienta muy abrumados por esto porque no

play08:22

lo no le vamos a dar bola por ahora lo

play08:24

vamos a borrar todo de esta forma vamos

play08:26

a dejar algunas cosas el bitelo tampoco

play08:28

lo vamos a usar el u State lo vamos a

play08:31

ver más adelante Así que también lo saco

play08:32

este también lo saco y piensan

play08:34

simplemente que esta es la estructura de

play08:36

nuestro componente acá tenemos la hoja

play08:39

de estilos que también estamos

play08:40

importando pero para que no se sientamos

play08:43

abrumados lo vamos a Borrar toda y

play08:45

tenemos estos dos archivos que

play08:47

representan nuestro componente esto de

play08:50

acá es como se crea un componente react

play08:53

para ver que es una función y estuvo muy

play08:55

confuso Pero dentro de poco lo van a

play08:57

entender bien estamos importando el css

play09:00

que no tiene nada así que no hace nada y

play09:02

después acá tenemos una función que

play09:04

tiene el nombre en nuestro componente y

play09:06

retorna esto que parece html lo cual

play09:10

puede ser medio confuso al principio

play09:12

pero en realidad Esta sintaxis es

play09:15

sx que es básicamente lo que dijimos

play09:18

antes no xml en javascript taxes html

play09:21

que pueden vivir dentro de tu archivo

play09:23

javascript y este export es para poder

play09:26

exportar nuestro nuestra función y que

play09:29

otras otros archivos javascript como

play09:31

este main.js x lo puedan importar si

play09:35

vamos a ir a punto jsx y vamos a agregar

play09:37

nuestro propio html vamos a empezar con

play09:39

un h1 hola reacts esto lo van a ver así

play09:42

porque está aplicando estilos que están

play09:44

en index.css Así que si quieren podemos

play09:46

sacar todos a mí me gustan así que los

play09:48

voy a dejar lo que sí no sé si me gusta

play09:51

mucho es tener esto acá porque esto me

play09:53

va a poner los elementos en el centro y

play09:55

yo quiero poder definir mi propio layout

play09:58

para las cosas Si lograron seguirme

play10:00

hasta acá genial ahora van a ver que

play10:02

trabajar con react es mucho más sencillo

play10:04

de lo que piensan al principio pudo

play10:07

haberse sentido medio abrumador por las

play10:10

cantidades de archivos que tiene el

play10:12

proyecto cuando están ustedes

play10:13

acostumbrados a trabajar simplemente con

play10:15

un html un css y un javascript y acá

play10:18

tienen un montón de archivos puede ser

play10:20

un poco abrumadora al principio pero van

play10:22

a ver que una vez que llegan a este

play10:24

punto es muy sencillo y lo que vamos a

play10:26

hacer primero es crear nuestro propio

play10:27

componente y react es muy bueno para

play10:30

crear componentes reutilizables vas a ir

play10:33

acá a source clic derecho nuevo archivo

play10:37

vamos a crear una carpeta de componentes

play10:40

Sí para mantener nuestros archivos

play10:42

organizados si bien por ahora no tenemos

play10:44

muchos archivos porque es un proyecto

play10:46

chiquito a la larga siempre es mejor

play10:49

estar organizados los componentes

play10:50

empiezan en mayúscula y nosotros vamos a

play10:53

llamar Card de tarjeta así que

play10:55

simplemente ponemos

play10:56

card.js x que es la extensión que

play10:59

venimos usando para los componentes si

play11:02

tienen esta extensión de react s7+

play11:08

lo que pueden hacer es escribir RFC y

play11:11

les va a crear el componente

play11:12

automáticamente pero yo lo voy a hacer a

play11:16

mano en caso de que ustedes no tengan

play11:18

esa extensión un componente básicamente

play11:20

es una función dejamos algunos espacios

play11:22

para los importes y ponemos funsión

play11:26

nombre del componente Card y simplemente

play11:30

todo lo demás es una función normal y

play11:32

acá lo que vamos a hacer es retornar xml

play11:36

Así que Richard

play11:38

xml o html y nosotros vamos a retornar

play11:41

un div

play11:42

que tiene texto por ahora no solamente

play11:45

para visualizar el componente y después

play11:48

lo exportamos

play11:51

exports porque es lo único que vamos a

play11:53

exportar

play11:54

carga de esta forma y Ese es nuestro

play11:57

componente si lo queremos usar en App o

play12:00

en otro componente o en donde sea lo

play12:03

vamos a llamar De esta forma como si

play12:05

fuese un tag de html que se cierra sola

play12:08

signo de menor Card Barrita signo de

play12:12

mayor pero lo que falta acá es

play12:13

importarlo así que importe Card y acá me

play12:17

da la opción de hacerlo automáticamente

play12:19

Así que acepto esa y importar from

play12:22

componentes cara y ahora si guardamos

play12:24

van a ver mi componente acá vamos a

play12:27

hacerlo un poquito más bonito al

play12:29

componente vamos a crear un dip si vamos

play12:32

a tener un div

play12:33

acá vamos a poner los paréntesis porque

play12:35

una vez que creas una nueva línea tiene

play12:37

que tener paréntesis de esa forma Vamos

play12:39

a ponerle un h2 que va a ser el título

play12:42

de la tarjeta sí título tarjeta y un p

play12:48

que va a ser la descripción de la

play12:50

tarjeta tenemos que hacerlo un poco más

play12:52

lindo porque no tiene ni borde ni nada

play12:54

así que vamos a crear un archivo css

play12:57

para este componente Pero antes de eso

play12:59

vamos a poner algunas clases a este

play13:01

diplo vamos a poner el Class name acá en

play13:05

react si quieren agregar una clase a un

play13:09

elemento html tienen que hacerlo de esta

play13:12

forma con Class name vamos a llamar

play13:14

bueno

play13:15

igual que el componente donde vamos a

play13:18

referenciar este Class name ahora lo

play13:21

vamos en un ratito cuando creemos el

play13:23

archivo punto css card.css

play13:28

punto Card no me aplicó los estilos

play13:31

porque tengo que importar el css acá

play13:34

simplemente con un import punto barra

play13:39

card.css en este curso no voy a entrar

play13:41

mucho en detalle en los estilos porque

play13:43

es un curso de react Así que si quieren

play13:45

usar los mismos estilos que estoy usando

play13:47

yo simplemente con bien los de acá y

play13:50

listo nosotros nos vamos a enfocar en la

play13:51

parte de react Así que ahí Le agregué

play13:54

algunos estilos a la tarjeta para que se

play13:55

vea más o menos presentable y este es

play13:58

nuestro componente y ahora Para

play13:59

aprovechar sí que creamos un componente

play14:03

supongamos que necesitamos varias

play14:05

tarjetas vamos a poner de esta forma y

play14:09

se acabó y esto lo que nos permite

play14:11

también es que cuando tengamos que

play14:14

cambiar el contenido o cómo se comporta

play14:17

el componente simplemente lo cambiamos

play14:20

en un solo lugar de esta forma y se va a

play14:23

cambiar en todas las referencias para

play14:26

que nuestra página se vea un poco más

play14:27

presentable vamos a ir a cada app y

play14:28

vamos a crear un div y le vamos a poner

play14:31

flexbox para que nos ordena un poco las

play14:34

tarjetas estas que están todas pegadas

play14:36

Vamos a darle un nombre de la clase al

play14:38

DIF que va a ser container

play14:41

y vamos a meter todas las tarjetas acá

play14:43

con alt y flechita para abajo voy

play14:46

cambiando las líneas de lugar y después

play14:49

lo voy a tabular para que quede bien

play14:52

ordenado en estas tarjetas van a estar

play14:54

adentro de la clase del dip con la clase

play14:56

container después vamos a ir a app.css

play15:01

y vamos a apuntar a container

play15:05

seleccionar container Vamos a darle un

play15:08

display Flex y la dirección ya está en

play15:11

horizontal Así que vamos a agregar

play15:13

espacio entre cada componente con Gap

play15:17

ten pictures

play15:19

Ahí estamos tenemos un problema acá y es

play15:23

que nos está poniendo todos en la misma

play15:25

línea y Recuerden que nuestra tarjeta

play15:27

tienen un ancho de 300 píxeles Entonces

play15:29

esto no debería pasar vamos a hacer un

play15:31

par de cosas más acá que es por ejemplo

play15:33

Flex rap para que cuando el tamaño de la

play15:37

tarjeta supere el tamaño horizontal que

play15:40

tengo disponible me las coloque abajo

play15:42

Flex rap

play15:45

para activar el Flex rap y una cosita

play15:49

más que es a Line items Center no era

play15:53

Line admins items la propiedad que está

play15:55

buscando para poner para que cuando pase

play15:57

esto las cosas se pongan en el centro

play15:58

vamos a justify content Center de esta

play16:01

forma este olardiac también si lo

play16:04

queremos centrar lo que podemos hacer es

play16:06

simplemente ir acá a app punto css

play16:09

apuntar a la clase de esta forma y texto

play16:12

Line Center Y si queremos ser un poco

play16:14

más específicos tendríamos que hacer

play16:16

punto app h1 para apuntar a este

play16:20

elemento de acá

play16:21

ahora que tenemos un layout más o menos

play16:24

definido lo que tendremos que empezar a

play16:26

usar son propiedades de react Pues la

play16:29

verdad es que esto así no tiene mucho

play16:31

sentido porque cada tarjeta en realidad

play16:33

debería tener su propio título y cada

play16:35

tarjeta debería tener su propia

play16:37

descripción entonces las propiedades van

play16:40

a viajar acá por parámetro cuando vayan

play16:43

a la definición del componente van a

play16:46

poner acá props si bien puede llamarse

play16:48

como ustedes quieran props es la

play16:51

convención de las propiedades eso es un

play16:52

objeto que contiene las propiedades

play16:55

entonces para acceder a las propiedades

play16:57

lo que vamos a hacer es por ejemplo

play16:59

vamos a poner llaves Sí Dentro

play17:03

del xml html Recuerden que acá estamos

play17:06

en en sintaxis de jsx estamos en html

play17:10

vamos a abrir y cerrar Ya ves para poner

play17:14

javascript de vuelta digamos no Entonces

play17:16

supongamos que yo tengo la propiedad

play17:18

título y la propiedad descripción para

play17:21

de ellas tenemos que hacer props punto

play17:23

título por ejemplo no eso vamos a usar

play17:25

title porque venimos haciendo las cosas

play17:28

en inglés y solamente el contenido en

play17:31

español y acá props punto description de

play17:35

dónde salen estos title description

play17:37

estos Titan description se los pasa el

play17:41

elemento que usa el componente o sea

play17:43

vamos a app.jsx de vuelta y acá cuando

play17:47

usamos el componente tenemos que pasarle

play17:49

title

play17:53

título o lo que sea contenido sin coma

play17:56

no son como atributos y descripción

play18:01

si guardamos van a poder visualizar que

play18:04

le llegó a este componente Card las

play18:08

propiedades title y descripción

play18:10

ven que esto Entonces nos permite en las

play18:13

otras tarjetas

play18:15

pasarle a cada una el contenido que le

play18:18

corresponde una sintaxis más sencilla

play18:21

una vez que entendieron las propiedades

play18:22

es simplemente acá como ir desarmando el

play18:27

objeto pues sabemos que props es un

play18:29

objeto entonces lo que podemos hacer es

play18:31

aprovechar la sintaxis de javascript y

play18:33

recibir el objeto de esta forma en este

play18:35

caso title y descripción incluso acá les

play18:39

podemos poner un valor por defecto de

play18:41

esta forma título por defecto

play18:45

y descripción por defecto y acá en vez

play18:49

de hacer pros punto title simplemente

play18:50

accedemos de esta forma porque los

play18:53

recibimos por parámetro de manera

play18:55

desacoplada si guardamos van a ver que

play18:58

las tarjetas que no reciben ninguna

play18:59

propiedad que son la tercera y la cuarta

play19:00

van a aplicar estos valores y las otras

play19:05

tarjetas van a seguir aplicando las

play19:06

propiedades que nosotros le pasamos

play19:09

Supongo que nosotros tenemos una lista

play19:12

de cosas una lista de 100 elementos que

play19:15

queremos mostrar en la página web no es

play19:17

muy raro tener esa cantidad de elementos

play19:19

e incluso más así que por lo general

play19:22

vamos a tener los datos de los elementos

play19:25

en otro archivo nosotros vamos a querer

play19:27

importar en nuestro componente o en

play19:30

nuestra vista o en lo que sea y sería

play19:32

muy incómodo tener que hacer a mano

play19:34

tener que poner

play19:36

así a mano cada vez que haremos nuevos

play19:40

elementos Entonces vamos a simular que

play19:43

tenemos datos vamos a hacer una carpeta

play19:46

de llamada Data y vamos a ponerle

play19:49

vicos punto js

play19:54

este vigo es punto js lo que va a hacer

play19:56

es exportar una red Sí con datos de

play20:01

vehículos que tengo armado acá

play20:05

básicamente lo que viene acá es una Rey

play20:08

donde cada elemento es un objeto y

play20:11

representa un vehículo tiene nombre

play20:13

descripción y una imagen y esta

play20:16

estructura siempre se mantiene en cada

play20:18

uno de los objetos se van a ver que al

play20:21

ser consistente de esta forma podemos

play20:23

importar este Rey en nuestro componente

play20:27

y mostrarlo de manera más automática lo

play20:31

vamos a borrar todo esto lo voy a

play20:33

mostrar cómo hacemos para mostrar una

play20:35

lista de manera más automática sin

play20:37

importar la cantidad de elementos que

play20:38

tenga la lista lo primero que vamos a

play20:40

hacer es importar el array acá arriba es

play20:44

importe

play20:46

bueno merece solo from.data barrabbicos

play20:50

ahí tenemos este Arley acá y lo que

play20:53

vamos a hacer es crear una especie de

play20:56

lista Sí con list

play21:01

va a ser igual a y ahora vamos a

play21:04

recorrer nuestro rey bicos

play21:08

punto Maple

play21:12

creamos la función anónima y esto

play21:14

queremos que retorne xml cada vehículo

play21:18

va a ser representado por una tarjeta

play21:21

entonces vamos a retornar una tarjeta

play21:24

por cada vehículo

play21:26

y acá le vamos a pasar lo que es en el

play21:30

título le vamos a pasar el nombre y en

play21:33

la descripción la descripción entonces

play21:35

title va a ser igual a b y acá Recuerden

play21:40

que tenemos que usar las llaves cada vez

play21:43

que queremos usar javascript dentro de

play21:45

xml B punto name y en descripción va a

play21:51

ser igual a b punto descripción Entonces

play21:54

por cada uno de estos elementos vamos a

play21:58

devolver una tarjeta Como que cada cada

play22:01

va a estar armado y acá abajo que es

play22:05

nuestro componente simplemente podemos

play22:07

hacer

play22:09

llaves Beat list y listo van a ver todas

play22:14

nuestras tarjetas renderizadas en la

play22:17

vista

play22:19

esto es muy bueno Porque no tenemos que

play22:20

Modificar el código que tiene la lógica

play22:23

que muestra las tarjetas y simplemente

play22:25

podemos cambiar los datos y el

play22:28

comportamiento

play22:29

de la vista se va a cambiar

play22:31

automáticamente Por ejemplo si quiero

play22:32

sacar Este chip de acá lo borro de los

play22:36

datos guardo y no lo vemos más si

play22:39

queremos agregar uno nuevo lo agregamos

play22:41

y lo vemos Así pueden pensar incluso que

play22:45

este array que importamos acá son los

play22:48

datos que vienen de la Api y de la base

play22:50

de datos entonces sin importar Cuántos

play22:53

elementos te vengan este código de acá

play22:55

lo que va a hacer es renderizartelos

play22:57

todos tengas tres tarjetas 20 tarjetas o

play23:00

incluso cientos de tarjetas Obviamente

play23:03

que tenés muchos elementos puede ser muy

play23:05

lento por supuesto pero lo va a hacer

play23:08

los componentes también pueden tener

play23:11

estado interno que puede definir su

play23:15

comportamiento o lo que pueden mostrar

play23:17

para demostrar esto vamos a crear un

play23:20

componente nuevo que se va a llamar show

play23:23

hide porque va a ser un componente

play23:27

sencillo pero nos va a servir bastante

play23:28

para explicar algunos conceptos de react

play23:32

lo vamos a generarlo automáticamente con

play23:34

el con el atajo rfc show y por ahora lo

play23:40

que vamos a hacer es simplemente

play23:42

afuera del retorno del xml vamos a ver

play23:48

algo nuevo que es un Hook de react

play23:52

Entonces quiero presten atención acá

play23:54

vamos a declarar sí const Y acá vamos a

play23:58

declarar una variable de estado que

play24:00

guarda el estado del componente este

play24:04

componente piensen que lo que va a hacer

play24:06

es un botón que va a mostrar y ocultar

play24:10

algo en nuestro caso un texto para

play24:12

mantenerlo simple entonces lo que vamos

play24:14

a guardar en el estado es Si queremos

play24:17

que esté mostrado o ocultado Entonces el

play24:21

estado se va a llamar show

play24:24

y acá también necesitamos pasarle el

play24:27

nombre de la función que va a cambiar el

play24:31

comportamiento de esto

play24:33

igual use State y ahí usted le tenemos

play24:37

que pasar el valor por defecto que va a

play24:40

tener esta variable show que va a ser

play24:42

true por defecto simplemente tienen que

play24:46

pensar que you State te va a devolver

play24:48

una Rey con dos elementos donde el

play24:50

primero es la variable donde se guarda

play24:53

el estado y el segundo elemento es la

play24:56

función que te permite cambiar el valor

play24:59

de esta de esta variable y lo

play25:02

interesante de tener estado Así es que

play25:03

en base al valor de show podemos decidir

play25:08

si Mostrar o ocultar algunas cosas

play25:10

Entonces voy a poner un h2 acá que vamos

play25:14

a mostrarlo ocultarlo en base al valor

play25:17

de la variable show entonces acá voy a

play25:20

poner un texto en este caso va a ser

play25:23

hide me que significa ocultame

play25:27

y lo voy a mostrar ocultar en base al

play25:30

valor de esto y para eso voy a

play25:33

envolverlo dentro de llaves porque

play25:36

quiero que se comporte en base a

play25:39

javascript y lo que voy a hacer es

play25:41

cuando yo es verdadero Mostrar Esto

play25:45

entonces lo que podemos hacer para que

play25:47

sea sencillo no es hacer un ternario de

play25:51

esta forma

play25:53

sí show es verdadero me va a mostrar

play25:56

esto y si no me ha de volver un String

play25:58

sí Para probarlo guardamos

play26:01

si importamos este componente Joe hyde

play26:04

acá en nuestra vista van a ver

play26:08

el comportamiento van a ver que ahora no

play26:11

se ve y si esto es verdadero ahí se ve y

play26:14

otra forma más breve de hacer esto es

play26:17

simplemente sacar la parte del falso y

play26:21

en vez de hacer un ternario poner un

play26:23

operador ant acá por qué esto funciona

play26:27

ven que si está en true y está en Force

play26:29

lo oculta esto funciona Porque show es

play26:33

el valor que va a cambiar va a ser

play26:35

verdadero o falso y hited me este

play26:38

elemento xml o html siempre va a ser

play26:42

verdadero Entonces hidemy se va a

play26:45

mostrar cuando show sea verdadero porque

play26:47

los dos son verdaderos pero cuando yo es

play26:50

falso Heidi no se va a mostrar porque

play26:52

está esta cosa de acá evalúa falso lo

play26:55

que podemos hacer para que sea incluso

play26:57

más interactivo y no tengamos que

play26:59

cambiar el valor de show a mano es poner

play27:03

un botón acá

play27:05

Y acá es donde vamos a estar eventos no

play27:07

el botón lo que va a hacer es cuando

play27:10

nosotros lo clicamos va a cambiar el

play27:12

valor de show como hacemos eso primero

play27:15

Vamos a ponerle un poco de texto al

play27:17

botón así lo vemos lo vemos bien hide

play27:19

text va a ser el texto el botón y acá

play27:23

vamos a hacer un clic de esta forma y lo

play27:27

vamos a pasar el nombre de una función

play27:29

que todavía no creamos Pero vamos a

play27:31

crear en breve por lo general se llama

play27:33

handle click pero ustedes le pueden

play27:35

poner el nombre que quieran handle clic

play27:37

lo vamos a crear acá arriba de esta

play27:39

forma con handle click es una función

play27:42

esto por lo general va a recibir un

play27:44

evento pero si no lo usan esto lo pueden

play27:46

dejar en blanco

play27:48

Pero yo lo voy a poner acá evento y Esto

play27:51

va a ser una función que lo que va a

play27:52

hacer es usar esta otra función de acá

play27:55

para cambiar el valor de la variable

play27:57

show set show no que nosotros queremos

play28:01

hacer es si yo es verdadero a cambiarlo

play28:03

a falso y si yo es falso cambiar la

play28:06

verdadero y eso se logra muy fácilmente

play28:09

simplemente pasándole a set show el

play28:11

valor contrario de show porque es un

play28:13

booleano entonces este botón lo que va a

play28:17

hacer es Llamar a esta función que

play28:18

cambia el valor de show por defecto por

play28:21

defecto Recuerden que era verdadero cada

play28:24

vez que yo clique este botón va a

play28:26

cambiar el valor de show de verdadero a

play28:28

falso y de falso o verdadero que a su

play28:31

vez va a ocultar este texto Mira

play28:36

el botón de arriba abajo lo que podemos

play28:38

hacer es poner el botón antes del texto

play28:42

otra cosa interesante de hacer es que

play28:46

cuando el texto

play28:48

está lo podemos ver tiene sentido que el

play28:51

botón diga hitex Porque es ocultar texto

play28:53

pero cuando el texto ya está ocultado el

play28:55

botón no tiene mucho sentido que siga

play28:57

diciendo hitex entonces podemos cambiar

play28:59

el texto de este botón programáticamente

play29:03

con algo que ya vimos que es un ternario

play29:06

en base al valor de show envolvemos High

play29:09

text en llaves y acá adelante vamos a

play29:12

preguntar el valor de show nuevamente en

play29:14

base a eso sí cuando show es verdadero

play29:17

es porque el texto está entonces hitex

play29:20

es el texto que corresponde pero cuando

play29:22

yo es falso no hay texto entonces

play29:25

tendríamos que Mostrar Show

play29:29

incluso lo que podemos hacer es sacar

play29:32

este espacio text para afuera y dejar

play29:36

que cambie solamente

play29:38

hide y Show

play29:42

guardamos esto van a ver cómo cambia el

play29:44

texto del botón en base a si se está

play29:48

mostrando o no el título

play29:52

y con este componente de acá vimos

play29:55

estado vimos eventos de clic estos

play29:59

eventos pueden ser cualquier otra cosa

play30:00

que se les ocurra no Por lo general se

play30:04

trabaja un click al principio y también

play30:06

vimos renderizado condicional vamos a

play30:09

ocultar este componente porque ya

play30:11

mostramos ya lo usamos para aprender los

play30:14

conceptos y el último tema que vamos a

play30:18

ver en este curso es enrutado

play30:21

nosotros vamos a hacer enrutado del lado

play30:24

del cliente que significa eso que cuando

play30:27

cambiamos de página vamos a simular que

play30:30

estamos cambiando de página y no y no

play30:34

vamos a pedirle una nueva página al

play30:35

servidor cada vez que tengamos que

play30:37

cambiar de página esto permite que las

play30:41

variables que se crean en javascript

play30:43

mantengan sus valores y así podemos

play30:46

mantener estado otra ventaja que tiene

play30:49

es que es mucho más rápido que pedir una

play30:52

página nueva al servidor cada vez que

play30:54

tengamos que cambiar de página vamos a

play30:56

lograr esto con el framework react

play30:59

router vamos a ir a la consola del

play31:01

proyecto vamos a frenar un ratito

play31:04

nuestro proyecto y vamos a instalar una

play31:09

librería llamada react router dom de

play31:14

esta forma hoy me equivoqué con el

play31:16

comando

play31:24

esperamos a que se instale y listo

play31:27

tenemos nuestra nuestro enrutador acá

play31:30

instalado lo podemos ver en Backstage

play31:33

Jason la dependencia y seguro si abrimos

play31:36

la carpeta los bollos también va a estar

play31:38

entonces lo que vamos a hacer a

play31:39

continuación es ir a nuestro Main punto

play31:43

jsx y acá vamos a definir nuestras rutas

play31:46

acá vamos a tener que importar un par de

play31:49

cosas de react entre ellas create

play31:53

browser router y

play31:55

router Provider

play31:59

si quieren saber más sobre router down

play32:01

Recuerden que siempre pueden checar la

play32:03

documentación yo estoy siguiendo Este

play32:04

ejemplo de acá que está en feature

play32:07

overview hacemos const router de esta

play32:10

forma va a ser igual a create browser

play32:12

router y acá lo vamos a tener que pasar

play32:15

una Rey con las rutas y cada ruta va a

play32:19

ser un objeto que va a tener un una

play32:22

dirección si paz que va a ser un String

play32:24

al path Recuerden que el paz por defecto

play32:27

es una Barrita Así que este va a ser

play32:30

nuestro paz por defecto y un elemento no

play32:33

que puede ser un elemento jsx entonces

play32:37

Element acá vamos a pasarle la app de

play32:41

esta forma entonces ahí tenemos Nuestra

play32:44

primer ruta y después vamos a poner otra

play32:48

ruta cuando tengamos otros elementos que

play32:50

nos permite hacer esto sacar esta app de

play32:53

acá y poner el elemento router Provider

play32:56

que lo importamos acá de esta forma

play33:00

router Provider lo cerramos y le tenemos

play33:03

que pasar la ruta raw router va a ser

play33:07

igual a router lo que creamos arriba

play33:09

para mostrar el comportamiento si

play33:13

nosotros si guardamos esto no va a

play33:14

cambiar mucho nuestra página web si todo

play33:16

funciona bien van a ver que el pad

play33:19

principal que es este va a seguir

play33:21

mostrando nuestro componente app Bueno

play33:24

ahora no está corriendo tenemos que

play33:25

volver a correr la aplicación con mpm

play33:30

te va a correr El Comando vite y nos va

play33:33

a cobrarla nuevamente en 51 73 y vemos

play33:36

que en el pack principal tenemos nuestra

play33:40

nuestra app lo que me interesa hacer a

play33:42

mí en esta aplicación es por cada uno de

play33:46

estos vehículos crear una página web no

play33:49

una página aparte por ejemplo podríamos

play33:52

hacer no Paz

play33:56

car no de auto y el elemento podría ser

play34:01

no sé acá incluso podemos directamente

play34:04

programar acá voy a hacer un tip que

play34:07

diga Card page para demostrar no el

play34:10

comportamiento del enrutador y cuando yo

play34:12

escribo acá barra Card o barra Card no

play34:17

importa mucho la mayúscula minúscula no

play34:19

vamos a ir a la nueva página que creamos

play34:20

que es esta acá pero como dije antes

play34:23

nosotros no sabemos Cuántos elementos

play34:25

tenemos Entonces sería muy interesante

play34:27

poder generar estos de manera

play34:30

programática con el array que se exporta

play34:34

acá entonces parecido a lo que hicimos

play34:37

en App de generar una lista así lo

play34:41

podemos hacer con las rutas entonces

play34:44

volvemos a nuestro main. José jsx y acá

play34:48

vamos a importar nuevamente sí nuestros

play34:51

vehículos entonces

play34:53

imports velt y lo vamos a recorrer acá

play34:57

para ir creando las rutas este array que

play35:02

tenemos acá lo vamos a tener que sacar

play35:04

de acá y una vez que recorramos estos

play35:08

vehículos vamos agregando una por una

play35:10

las rutas Entonces vamos a sacar esto de

play35:12

acá sí vamos a crear

play35:15

un array de rutas en routes va a ser que

play35:20

el primer elemento que va a tener va a

play35:22

ser el por defecto que es este de acá

play35:26

el path es el principal y el elemento es

play35:29

app esto ya lo podemos sacar y acá le

play35:32

vamos a pasar

play35:34

y acá en el medio lo que vamos a hacer

play35:36

es ir agregando en estas rutas los

play35:39

diferentes vehículos Entonces por cada

play35:41

vehículo vamos a crear una ruta para eso

play35:43

vamos a recorrer los vehículos punto

play35:46

Ford each B por cada vehículo acá para

play35:50

que se entienda mejor podemos poner

play35:51

disco y después acá vamos a agregar

play35:56

routes punto Push vamos a crear un

play36:01

elemento para tener como Paz el nombre

play36:03

del vehículo entonces vehículo name y

play36:06

por ahora el elemento como no tenemos la

play36:09

vista de la página creada va a ser

play36:11

simplemente un DIF que muestre el nombre

play36:15

de esta forma

play36:17

entonces ahí creamos por cada vehículo

play36:19

una ruta donde el camino el Paz es el

play36:24

nombre del vehículo van a ver que

play36:26

nosotros tenemos

play36:27

un Kart un motor

play36:31

tenemos creadas cada una de esas páginas

play36:34

acá en el

play36:37

main.jsx Entonces si vamos a nuestra

play36:39

línea de direcciones ponemos barra Card

play36:42

vamos a ver la página del car

play36:45

barra Bicycle tenemos la página del

play36:48

baysical y así con las demás para crear

play36:51

una página más interesante tendríamos

play36:56

que crear el componente Entonces vamos a

play37:00

ir acá a source vamos a crear la página

play37:02

para cada uno de nuestros vehículos

play37:04

vamos a pasarle por propiedad los datos

play37:07

Y lo único que va a cambiar es el

play37:08

contenido

play37:09

como si fuese una página de producto

play37:12

donde lo único que cambia es la

play37:14

información entonces source new file lo

play37:18

hago afuera de la carpeta de componentes

play37:19

por eso ya no es un componente sino que

play37:22

es una página entera una vista entonces

play37:24

voy a crear una carpeta llamada views de

play37:28

esta forma barra bico

play37:31

pues vamos a mostrar un vehículo

play37:34

jsx después si necesitamos css lo vamos

play37:38

a agregar pero por ahora con esto

play37:40

estamos bien Vamos a crear el real

play37:43

funcionar export component y acá por

play37:46

propiedad vamos a recibir el vehículo

play37:48

entero y lo que vamos a mostrar es un h1

play37:52

con el nombre del vehículo Víctor punto

play37:55

name Recuerden que este objeto es el que

play37:59

te manda este a Rey así que tenemos que

play38:02

acceder a estas propiedades

play38:04

Vico el punto name vamos a hacer un h2

play38:08

con la descripción

play38:10

vehículo descripción y finalmente vamos

play38:14

a poner un elemento imagen para

play38:16

renderizar la imagen donde el source es

play38:20

punto

play38:25

y el alt va a ser por ejemplo

play38:32

name más email por ejemplo y esto nos

play38:37

armaría el texto car y mesh

play38:41

Motors etcétera no entonces dependiendo

play38:43

del vehículo va a cambiar el texto de

play38:45

alt también lo único que nos queda hacer

play38:48

es volver a main.js x y acá en vez de

play38:51

mandar Este dip vamos a importar esta

play38:55

nueva vista que nos creamos Así que

play38:57

borramos esto y

play38:59

View me va a importar automáticamente y

play39:01

nos faltaría pasarle el vehículo acá

play39:04

bitcol igual a bitcoin ahora cada vez

play39:07

que nos vayamos a por ejemplo acá nos va

play39:10

a mostrar la vista a modo motor cycle no

play39:14

muestra la vista de morseico lo único

play39:16

que cambia es el contenido es la misma

play39:18

vista Pero por propiedad estamos pasando

play39:20

el vehículo lo que nos quedaría hacer

play39:22

para que sea más interactiva la página

play39:24

es no tener que escribir manualmente la

play39:27

dirección que quiero ir porque nadie

play39:29

hace eso y crear los links acá en

play39:32

tarjetas yo las voy a crear sencillo acá

play39:35

voy a ir a ver mi componente Card y

play39:38

usando otro elemento de la librería voy

play39:41

a hacer que cada título sea un link a la

play39:44

página correspondiente entonces lo que

play39:47

tenemos que hacer es importar el

play39:49

componente link también de router como

play39:53

me sugirió acá y voy a envolver este

play39:56

title en un link entonces link de esta

play40:01

forma cortamos este pedacito y lo

play40:04

ponemos acá al final y al link le

play40:06

tenemos que pasar la ruta no pero con el

play40:10

atributo tú Nosotros queremos ir a

play40:13

barrancar Barra more cycle

play40:16

que por suerte lo tenemos acá en el

play40:20

título porque Recuerden que a la tarjeta

play40:24

le estamos pasando el nombre del

play40:27

vehículo no

play40:29

tu title Obviamente que esto está medio

play40:34

mal en realidad porque esta propiedad

play40:36

titter representa el título de la

play40:38

tarjeta y no siempre el título de tu

play40:41

tarjeta va a ser igual a la ruta a la

play40:44

cual quieres ir pero para este tutorial

play40:46

lo vamos a hacer así solamente tengan en

play40:48

cuenta que tienen que tener cuidado con

play40:50

estas cosas lo ideal sería que cada

play40:53

vehículo también tenga acá otra

play40:55

propiedad que sea la dirección no y acá

play40:58

por ejemplo tendría que hacer esto o

play41:01

cualquier otra dirección que sea y eso

play41:03

sería lo que le tendríamos que pasar al

play41:05

link pero para este tutorial Bueno vamos

play41:08

a dejar así ven que acá cambio a link

play41:11

cada uno de los de los de los títulos de

play41:14

las tarjetas y creo que vamos en ella

play41:16

nos va a llevar a la página

play41:17

correspondiente vamos a ir a las vistas

play41:20

a la vista nuevamente

play41:22

y vamos a poner un poco de estilos Así

play41:24

que vamos a crear el

play41:28

12ss y lo que nos interesaría hacer es

play41:31

agarrar el contenedor principal que es

play41:33

este que lo vamos a poner una clase

play41:36

respetando lo que venimos haciendo hasta

play41:38

ahora vamos a llamarla igual que el

play41:39

componente

play41:42

vamos a seleccionar esta clase en el

play41:45

view.css

play41:49

y vamos a darle un ancho máximo de 90

play41:54

por ciento margin auto para que esté

play41:58

centrado y vamos a centrar el texto con

play42:01

texto Line Center también nos interesa

play42:04

hacer que

play42:06

la imagen

play42:08

tenga sea display block para que se

play42:12

comporte de manera predecible y el ancho

play42:15

máximo sea del 100% del contenedor y nos

play42:19

faltaría importar este css acá en el

play42:22

componente con import comillas punto

play42:25

barra

play42:27

View punto css

play42:31

y ahí se vuelve mucho más presentable

play42:33

volvemos a la Home

play42:37

y podemos ver cada uno de los

play42:41

vehículos de manera muy sencilla bueno

play42:45

esta imagen es bastante pesada Así que

play42:47

tarda en cargármela entonces con este

play42:49

ejemplo sencillo siento que podemos ver

play42:51

la potencia que tiene react para armar

play42:54

interfaces de usuario porque por ejemplo

play42:56

si quiero Agregar un nuevo vehículo a

play43:00

cada una nueva página es tan sencillo

play43:01

como agregarlo en la base de datos sin

play43:04

que en mi caso sería este array de acá

play43:06

acá agregue un space chip lo guardo y

play43:10

simplemente aparece acá y ya está todo

play43:12

armado se entiende entonces así Podemos

play43:14

agregar fácilmente todos los que

play43:16

queramos sin tener que tocar el código

play43:19

Fuente del Front Incluso si bien acá

play43:22

viejos.js es parte del código fuente

play43:24

nosotros podemos sacar estos datos de

play43:27

una Api y una base de datos y react nos

play43:30

lo va a mostrar bien automáticamente si

play43:33

es que hicimos bien las cosas en el

play43:35

Front y con el componente Joe hyde

play43:37

también vimos lo fácil que es agregar

play43:40

interactividad en la página a través de

play43:43

estado combinando todo esto que ofrece

play43:45

react con todos buenos estilos de css

play43:49

podemos tener una página muy buena

play43:52

en muy pocos pasos que se puede expandir

play43:55

incluso con mucha facilidad Hay cambio

play43:58

unos estilos para que no quede tan

play44:00

básico y voy a subir Este ejemplo a

play44:02

github le dejo el link en la descripción

play44:04

para que se lo clonen si es que Sienten

play44:06

que les sirve este ejemplo como

play44:10

inicio en reactor bueno con eso deberían

play44:13

tener las básicas de react Así que sigan

play44:15

practicando sigan Armando proyectos

play44:17

chequen la documentación de react y de

play44:20

reactter y van a llegar muy lejos nos

play44:23

vemos

Rate This

5.0 / 5 (0 votes)

您是否需要英文摘要?