Begginer Flashcards

1
Q

¿Qué es React?

A

React es una biblioteca de JavaScript de código abierto para construir interfaces de usuario. Está basada en la componetización de la UI: la interfaz se divide en componentes independientes, que contienen su propio estado. Cuando el estado de un componente cambia, React vuelve a renderizar la interfaz.

Esto hace que React sea una herramienta muy útil para construir interfaces complejas, ya que permite dividir la interfaz en piezas más pequeñas y reutilizables.

Fue creada en 2011 por Jordan Walke, un ingeniero de software que trabajaba en Facebook y que quería simplificar la forma de crear interfaces de usuario complejas.

Es una biblioteca muy popular y es usada por muchas empresas como Facebook, Netflix, Airbnb, Twitter, Instagram, etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Cuáles son las características principales de React?

A

Las características principales de React son:

Componentes: React está basado en la componetización de la UI. La interfaz se divide en componentes independientes, que contienen su propio estado. Cuando el estado de un componente cambia, React vuelve a renderizar la interfaz.

Virtual DOM: React usa un DOM virtual para renderizar los componentes. El DOM virtual es una representación en memoria del DOM real. Cuando el estado de un componente cambia, React vuelve a renderizar la interfaz. En lugar de modificar el DOM real, React modifica el DOM virtual y, a continuación, compara el DOM virtual con el DOM real. De esta forma, React sabe qué cambios se deben aplicar al DOM real.

Declarativo: React es declarativo, lo que significa que no se especifica cómo se debe realizar una tarea, sino qué se debe realizar. Esto hace que el código sea más fácil de entender y de mantener.

Unidireccional: React es unidireccional, lo que significa que los datos fluyen en una sola dirección. Los datos fluyen de los componentes padres a los componentes hijos.

Universal: React se puede ejecutar tanto en el cliente como en el servidor. Además, puedes usar React Native para crear aplicaciones nativas para Android e iOS.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Qué significa exactamente que sea declarativo?

A

No le decimos cómo debe renderizar la interfaz a base de instrucciones. Le decimos qué debe renderizar y React se encarga de renderizarlo.

Un ejemplo entre declarativo e imperativo:

// Declarativo
const element = <h1>Hello, world</h1>

// Imperativo
const element = document.createElement(‘h1’)
element.innerHTML = ‘Hello, world’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Qué es un componente?

A

Un componente es una pieza de código que renderiza una parte de la interfaz. Los componentes pueden ser parametrizados, reutilizados y pueden contener su propio estado.

En React los componentes se crean usando funciones o clases.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué es JSX?

A

React usa JSX para declarar qué debe renderizar. JSX es una extensión de JavaScript que permite escribir un código más cercano visualmente a HTML, que mejora la legibilidad del código y hace que sea más fácil de entender.

Sin JSX, deberíamos usar React.createElement para crear los elementos de la interfaz manualmente. Esto es muy tedioso y poco legible. Por eso, React usa JSX para declarar qué debe renderizar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Cómo se transforma el JSX?

A

El JSX se transforma en código JavaScript compatible en el navegador usando un transpilador o compilador. El más famoso es a día de hoy Babel, que utiliza una serie de plugins para ser compatible con la transformación, pero existen otros como SWC.

Hay casos especiales en los que un transpilador no es necesario. Por ejemplo, Deno tiene soporte nativo para la sintaxis JSX y no es necesario transformar el código para hacerlo compatible.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Cuál es la diferencia entre componente y elemento en React?

A

Un componente es una función o clase que recibe props y devuelve un elemento. Un elemento es un objeto que representa un nodo del DOM o una instancia de un componente de React.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Cómo crear un componente en React?

A

Los componentes en React son funciones o clases que devuelven un elemento de React. Hoy en día lo más recomendado es usar funciones, pero también puedes usar una clase para crear un componente React.

Lo importante es que el nombre de la función o clase empiece con una letra mayúscula. Esto es necesario para que React pueda distinguir entre componentes y elementos HTML.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué son las props en React?

A

Las props son las propiedades de un componente. Son datos que se pasan de un componente a otro. Por ejemplo, si tienes un componente Button que muestra un botón, puedes pasarle una prop text para que el botón muestre ese texto.

Podríamos entender que el componente Button es un botón genérico, y que la prop text es el texto que se muestra en el botón. Así estamos creando un componente reutilizable.

Debe considerarse además que al usar cualquier expresión JavaScript dentro de JSX debe envolverlos con {}, en este caso el objeto props, de otra forma JSX lo considerará como texto plano.

Para usarlo, indicamos el nombre del componente y le pasamos las props que queremos.

Las props son una forma de parametrizar nuestros componentes igual que hacemos con las funciones. Podemos pasarle cualquier tipo de dato a un componente, incluso otros componentes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Qué es y para qué sirve la prop children en React?

A

La prop children es una prop especial que se pasa a los componentes. Es un objeto que contiene los elementos que envuelve un componente.

Por ejemplo, si tenemos un componente Card que muestra una tarjeta con un título y un contenido, podemos usar la prop children para mostrar el contenido.

En este caso, la prop children contiene el elemento <p>Contenido de la tarjeta</p>

Conocer y saber usar la prop children es muy importante para crear componentes reutilizables en React.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué diferencia hay entre props y state?

A

Las props son un objeto que se pasan como argumentos de un componente padre a un componente hijo. Son inmutables y no se pueden modificar desde el componente hijo.

El state es un valor que se define dentro de un componente. Su valor es inmutable (no se puede modificar directamente) pero se puede establecer un valor nuevo del estado para que React vuelva a renderizar el componente.

Así que mientras tanto props como state afectan al renderizado del componente, su gestión es diferente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Se puede inicializar un estado con el valor de una prop? ¿Qué pasa si lo haces y qué hay que tener en cuenta?

A

Sí, se puede inicializar el estado con el valor de una prop. Pero hay que tener en cuenta que, si la prop cambia, el estado no se actualizará automáticamente. Esto es porque el estado se inicializa una vez, cuando el componente se monta por primera vez.

En el caso que necesites inicializar un estado con una prop, es una buena práctica añadir el prefijo de initial a la prop para indicar que es el valor inicial del estado y que luego no lo usaremos más.

Es un error muy común pensar que la prop actualizará el estado, así que tenlo en cuenta.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué es el renderizado condicional en React?

A

El renderizado condicional es la forma de mostrar un componente u otro dependiendo de una condición.

Para hacer renderizado condicional en React usamos el operador ternario.

Es común encontrar implementaciones del renderizado condicional con el operador &&. Es preferible utilizar el operador ternario.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Cómo puedes aplicar clases CSS a un componente en React y por qué no se puede usar class?

A

Para aplicar clases CSS a un componente en React usamos la prop className. La razón por la que se llama className es porque class es una palabra reservada en JavaScript. Por eso, en JSX, tenemos que usar className para aplicar clases CSS.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Cómo puedes aplicar estilos en línea a un componente en React?

A

Para aplicar estilos CSS en línea a un componente en React usamos la prop style. La diferencia de cómo lo haríamos con HTML, es que en React los estilos se pasan como un objeto y no como una cadena de texto (esto puede verse más claro con los dobles corchetes, los primeros para indicar que es una expresión JavaScript, y los segundos para crear el objeto). Los nombres de las propiedades CSS están en camelCase.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Cómo puedo aplicar estilos de forma condicional a un componente en React?

A

Puedes aplicar estilos de forma condicional a un componente en React usando la prop style y un operador ternario. También puedes seguir la misma mecánica usando clases. En este caso, usamos el operador ternario para decidir si añadir o no la clase.

17
Q

¿Qué es el renderizado de listas en React?

A

El renderizado de listas es la forma de iterar un array de elementos y renderizar elementos de React para cada uno de ellos.

Para hacer renderizado de listas en React usamos el método map de los arrays.

function List({ items }) {
return (
<ul>
{items.map(item => (
<li key={item.id}>{item.name}</li>
))}
</ul>
)
}

18
Q

¿Cómo puedes escribir comentarios en React?

A

Si vas a escribir un comentario fuera del renderizado de un componente, puedes usar la sintaxis de comentarios de JavaScript.

Si vas a escribir un comentario dentro del renderizado de un componente, debes envolver el comentario en llaves y usar siempre la sintaxis de comentarios de bloque.

19
Q

¿Cómo añadir un evento a un componente en React?

A

Para añadir un evento a un componente en React usamos la sintaxis on y el nombre del evento nativo del navegador en camelCase.

20
Q

¿Cómo puedo pasar un parámetro a una función que maneja un evento en React?

A

Para pasar un parámetro a una función que maneja un evento en React podemos usar una función anónima.

También puedes crear una función que ejecuta la función pasándole el valor de la prop.

21
Q

¿Qué es el estado en React?

A

El estado es un objeto que contiene datos que pueden cambiar en el tiempo. En React, el estado se usa para controlar los cambios en la interfaz.

No solo podemos tener en el estado valores booleanos, también podemos tener objetos, arrays, números, etc.

Para crear un estado en React usamos el hook useState. Al usar el hook useState este devolverá un array de dos posiciones:
El valor del estado y
la función para cambiar el estado.
Suele usarse desestructuración para facilitar la lectura y ahorrarnos algunas líneas de código. Por otro lado, al pasarle un dato como parámetro al useState le estamos indicando su estado inicial.

22
Q

¿Qué son los hooks?

A

Los Hooks son una API de React que nos permite tener estado, y otras características de React, en los componentes creados con una function.

Esto, antes, no era posible y nos obligaba a crear un componente con class para poder acceder a todas las posibilidades de la librería.

Hooks es gancho y, precisamente, lo que hacen, es que te permiten enganchar tus componentes funcionales a todas las características que ofrece React.

23
Q

¿Qué hace el hook useState?

A

El hook useState es utilizado para crear variables de estado, quiere decir que su valor es dinámico, que este puede cambiar en el tiempo y eso requiere una re-renderización del componente donde se utiliza

Recibe un parámetro:

El valor inicial de nuestra variable de estado.
Devuelve un array con dos variables:

En primer lugar tenemos la variable que contiene el valor
La siguiente variable es una función set, requiere el nuevo valor del estado, y este modifica el valor de la variable que anteriormente mencionamos
Cabe destacar que la función proporciona cómo parámetro el valor actual del propio estado. Ex: setIsOpen(isOpen => !isOpen)

24
Q

¿Qué significa la expresión “subir el estado”?

A

Cuando varios componentes necesitan compartir los mismos datos de un estado, entonces se recomienda elevar ese estado compartido hasta su ancestro común más cercano.

Dicho de otra forma. Si dos componentes hijos comparten los mismos datos de su padre, entonces mueve el estado al padre en lugar de mantener un estado local en sus hijos.

25
Q

¿Qué hace el hook useEffect?

A

El hook useEffect se usa para ejecutar código cuando se renderiza el componente o cuando cambian las dependencias del efecto.

Recibe dos parámetros:
La función que se ejecutará al cambiar las dependencias o al renderizar el componente.
Un array de dependencias. Si cambia el valor de alguna dependencia, ejecutará la función.

26
Q

Explica casos de uso del hook useEffect

A

Podemos usar el hook useEffect de diferentes formas, tales como:

Ejecutar código cuando se renderiza el componente, cuando cambian las dependencias del efecto o cuando se desmonta el componente.
Por eso puede ser útil para hacer llamadas a APIs, ya que sea nada más montar el componente o cuando cambian las dependencias.
Realizar tracking de eventos, como Google Analytics, para saber qué páginas visitan los usuarios.
Podemos validar un formulario para que cada vez que cambie el estado, podamos actualizar la UI y mostrar dónde están los errores.
Podemos suscribirnos a eventos del navegador, como por ejemplo el evento resize para saber cuando el usuario cambia el tamaño de la ventana.

27
Q

Cómo suscribirse a un evento en useEffect

A

Dentro de useEffect nos podemos suscribir a eventos del navegador, como el evento resize para saber cuando el usuario cambia el tamaño de la ventana. Es importante que nos desuscribamos cuando el componente se desmonte para evitar fugas de memoria. Para ello, tenemos que devolver una función dentro del useEffect que se ejecutará cuando el componente se desmonte.

28
Q

¿Qué hace el hook useId?

A

useId es un hook para generar identificadores únicos que se pueden pasar a los atributos de las etiquetas HTML y es especialmente útil para accesibilidad.

Llama useId en el nivel superior del componente para generar una ID única. A continuación, pasa el ID generado a diferentes atributos.

La etiqueta aria-describedby te permite especificar que dos etiquetas están relacionadas entre sí, puede generar una identificación única con useId donde incluso si PasswordField aparece varias veces en la pantalla, las identificaciones generadas no chocarán.

29
Q

¿Cómo podemos ejecutar código cuando el componente se monta?

A

Podemos ejecutar código cuando el componente se monta usando el hook useEffect sin pasarle ninguna dependencia. En este caso, la función que se pasa como primer parámetro se ejecutará cuando el componente se monte.

30
Q

¿Qué son los Fragments en React?

A

Los Fragments son una forma de agrupar elementos sin añadir un elemento extra al DOM, ya que React no permite devolver varios elementos en un componente, solo un elemento raíz.

Para crear un Fragment en React usamos el componente Fragment. También podemos usar la sintaxis de abreviatura <></>

31
Q

¿Por qué es recomendable usar Fragment en vez de un div?

A

Las razones por las que es recomendable usar Fragment en vez de un div a la hora de envolver varios elementos son:

Los div añaden un elemento extra al DOM, mientras que los Fragments no. Esto hace que el número de elementos HTML y la profundidad del DOM sea menor.
Los elementos envueltos con Fragment son afectados directamente por las propiedades flex o grid de CSS de su elemento padre. Si usas un div es posible que tengas problemas con el alineamiento de los elementos.
Los Fragments son más rápidos que los div ya que no tienen que ser renderizados.
Los div aplican CSS por defecto (hace que lo que envuelve el div se comporte como un bloque al aplicar un display: block) mientras que los Fragment no aplican ningún estilo por defecto.

32
Q

¿Qué es el Compound Components Pattern?

A

Es un patrón de diseño de componentes que se basa en crear un componente padre con un solo objetivo, proporcionarle a sus hijos las propiedades necesarias para que se rendericen sin problemas.

Permite una estructura declarativa a la hora de construir nuevos componentes, además ayuda a la lectura del código por su simplicidad y limpieza.

Un ejemplo de este diseño sería una lista que renderiza los elementos hijos.

33
Q

¿Cómo puedes inicializar un proyecto de React desde cero?

A

Existen diversas formas de inicializar un proyecto de React desde cero. Entre las más populares están:

Vite: npm create vite@latest my-app – –template react

Create React App: npx create-react-app my-app

Usando un Framework, entre las más populares están:

Next.js: npx create-next-app@latest my-app

Gatsby: npm init gatsby

Cada uno de ellos es un empaquetador de aplicaciones web. Se encargan de resolver las dependencias de tu proyecto, levantar un entorno de desarrollo que se refresca automáticamente con cada cambio y de empaquetar tu aplicación para producción con todos los archivos estáticos necesarios y mucho más.

34
Q

¿Qué es React DOM?

A

React DOM es la librería que se encarga de renderizar los componentes de React para el navegador. Hay que tener en cuenta que React es una biblioteca que se puede usar en diferentes entornos (dispositivos móviles, apps de escritorio, terminal…).

Mientras que la biblioteca de React, a secas, es el motor de creación de componentes, hooks, sistema de props y estado… React DOM es la librería que se encarga de renderizar los componentes de React específicamente en el navegador.

React Native, por ejemplo, haría lo mismo, pero para dispositivos móviles.

35
Q

¿Qué JavaScript necesito para aprender React?

A

EcmaScript Modules o ESModules.

Operador condicional (ternario)

Funciones flecha o Arrow Functions

Parámetros predeterminados (default values)

Template Literals

Propiedades abreviadas

La desestructuración

Métodos de Array

Sintaxis Spread

Operador Rest

Encadenamiento opcional (Optional Chaining)