Section 4: React State & Working Flashcards

1
Q

React State & Working

A

Con React seguimos el Declarative Approach donde definimos el estado deseado del target y React se encarga de alcanzar ese estado.

Manejar eventos a través del STATE CONCEPT, manipular el STATE y hacer transiciones de un STATE a otro.

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

Event Listeners

A

Tenemos Event Listeners para todos los elementos HTML. En JS accedíamos a ellos a través de un selector y luego agregando un EventListener.

En React, para acceder a los Events usamos un SPECIAL PROP que siempre comienza con ON. Estos Event Handlers.reciben un función como valor.

BUENA PRÁCTICA: Puedo terminar el nombre de mis funciones con la palabra Handler para indicar que está asociada a un Evento.

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

JSX y Funciones

A

Nunca agregues muchas funciones en tu código JSX.

Las funciones en el JSX se llaman sin paréntesis porque de lo contrario las ejecutaría JavaScript.

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

Nota sobre Componentes

A

IMPORTANTE: mi componente es una función con la única diferencia de que devuelve JSX.

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

Actualización de Estados y Componentes

A

Ni el cambio de valor de las variables ni la inicialización de Event Listeners no actualizan el estado de los componentes.

Para hacer posibles esas actualizaciones de estado, necesitamos importar useStade desde la líbrería React:

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

useState()

A

La función useState (es un HOOK) nos permite definir valores como estados para que los cambios hechos sobre dichos valores sean actualizados en el componente;

Al igual que todos los React Hooks la función UseState()
1# Empieza con la palabra Use.
2# Se declara dentro del componente (los HOOKS solo deben llamarse dentro de funciones de react, no pueden llamarse fuera de los componentes ni en funciones anidadas, a excepción de UN HOOK.

useState recibe un estado como valor y con esto nos permite crear un tipo especial de variable; una variable que al cambiar de estado, hará que el component function (App.js por ejemplo), sea llamada de nuevo.

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

Reglas useState()

A

°No se define el valor de useState con el signo de = sino llamando a una función específica.

°useState() devuelve un arreglo con solo dos elementos en el que, el primer elemento es el VALOR que se le asigna en si misma y el segundo elemento es el UPDATING FUNCTION.

°Usamos Array Destructuring para poder almacenar en variables los elementos en el arreglo, devueltos por useState.

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

La CONVENCIÓN para nombrar las variables en el Array Destructuring de un HOOK:

A

°PRIMERA VARIABLE: se le asigna un nombre que describa el valor (este es el valor inicial).

°SEGUNDA VARIABLE: se le asigna un nombre que empieza por la palabra set seguida del mismo nombre que se le asignó a la primera variable (esta es la función que actualiza el valor inicial).

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

A Closer Look at the “useState” Hook

A

°useState registra un valor como estado, para el componente específico dentro del que ha sido llamado; cada vez que el component es llamado, se le delega un nuevo useState que React, maneja de forma independiente.

°Solo las instancias en las que el state cambia, son actualizadas (para cada instancia) tenemos estados separados.

°Se puede usar const con useState().

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

Listening to User Input

A

Entre las propiedades que recibo del EventListener a través del parámetro EVENT hay algunas como target:input, que apunta al evento que ha provocado la activación del EventListener y también posee VALUE PROPERTY que contiene el valor exacto del input.

  const titleChangeHandler = (event) => {
    console.log(event.target.value);
  };
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

useState() e inputs

A

useState() me permite almacenar los valores que recibo a través de input ayudando a que no cambien cuando los componentes sean actualizados.

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

¿Cómo manejar múltiples estados?

A

Puedo tener múltiples states en un mismo componente y cada state estará separado uno del otro.

NOTA: por defecto siempre que escucho al change event para un inpunt, el valor siempre será un string, incluso si el valor es un número o una fecha.

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

Updating State That Depends On The Previous State

A

KEY RULE: Siempre que actualice un STATE que dependa del STATE anterior, debe ser a través de un Call Back Function.

Si uso este approach React garantizará que el ESTADO que reciba sea el más actualizado porque tiene en cuenta todos los scheduled state updates.

NOTA: React “agenda” los STATE UPDATES, no los ejecuta de forma automática.

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

Handling Form Submission

A

°Cuando un botón es presionado en un formulario, se genera un evento que podemos escuchar a través de un Event Listener y ese es el Summit Event, que podemos capturar con onSubmit.

°Cuando un botón es presionado en un formulario la página se actualiza porque el botón envía un request al server que está hosteando el webpage.
event.preventDefault();

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

Adding Two-Way Binding

A

Two-way Binding es muy útil para trabajar con forms porque me permite recolectar user inputs y también cambiarlo. Por ejemplo al momento de un form submission

Two-way Binding significa que para los inputs podemos escuchar pero también podemos poner un nuevo VALOR de vuelta o resetearlo con el atributo value en el elemento input.

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

Child-to-Parent Component Communication (Bottom-up)

A

°Podemos crear nuestros propios EVENT PROPS que reciban funciones como valores y eso nos permite PASAR una función desde un PARENT-COMPONENT hacia un CHILD-COMPONENT y entonces llamar esa función dentro del CHILD-COMPONENT, para pasarle DATA como parámetro; así nos comunicamos “from child to parent”.

°Las PROPS solo pueden pasarse de parents a childs; no podemos saltar componentes intermedios.

17
Q

Lifting The State Up

A

Lifting-The-State-Up es un CONCEPTO que trata sobre pasar la data generada desde un Child-Component a algún Parent-Component para usarla en él o para pasarla a otro child-component.

Nota: generalmente el objetivo de hacer un Lifting The State Up no es pasar la data al App Component (Root Component), sino pasarla tan arriba en el Component Trees comosea necesario hasta tener un componente que tiene acceso tanto al componente que genera data como a los componentes que necesitan la data.

18
Q

CONTROLLED VS UNCONTROLLED

A

Siempre que uso Two Way Binding estoy controlando un componente; significa que un valor que es usado en el componente es pasado como prop a un parent component y es recibido desde el parent component, pero la verdadera lógica reside en el parent component.

Resumido: tanto el valor como los cambios al valor no son manejados en el componente perse, sino en un parent component..

19
Q

Presentational/stateless/dumb componentes vs stateful/smart components

A

Presentational versus stateful components
Stateless versus stateful componentes
Dumb versus smart components

Son sinónimos empleados para referirse a los componentes que manejan estados versus los que no manejan estados; en la mayoría de React Apps voy a tener más presentational/dumb components que stateful/smart components.