#

🔻react 👉 Componentes ,Props(Propiedades) ,Estado(State)

🔻Ciclo de vida del componente 👉 Montaje ,Actualización ,Desmontaje

🔻JSX (JavaScript XML) 👉 Sintaxis para escribir componentes.

🔻Renderizado condicional 👉 componentes basado en condiciones.

🔻Manejo de eventos 👉 onClick.

🔻Listas y keys:

🔻Refs 👉 acceso a nodos del DOM

🔻HOC 👉 Componente de orden superior

🔻Virtual DOM 👉 Representación eficiente de la interfaz.

🔻Context API 👉 Gestión de estado en React.

🔻Hooks 👉 funciones para componentes

🔻React Router 👉 librería rutas.

🔻Redux 👉 biblioteca de gestión de estado.

atajos

🔻imr imrs imrse
import React, { useState, useEffect } from 'react';

🔻 usf
const [🔹,🔹set] = useState(🔹);

🔻 sfc
const🔹 = () => {
return ( 🔹 );
}
export default🔹;

🔻uef
useEffect(() => {
🔹
}, []);

consola

npx create-react-app👉 crear proyecto “REACT”

npx create-expo-app👉 crear proyecto “EXPO”

npx create-gatsby👉 crear proyecto “GATSBY” (1.2MG)

npm install --save-dev parcel👉 crear proyecto “PARCEL” (4.5MG / sin map 1.9MG)

PARCEL

Recomendados Ligeros

ServerSideRendering

npx create-next-app👉 crear proyecto NEXT (0.50MG)

npx create-remix👉 crear proyecto REMIX (0.25MG)

ClientSideRendering

npm create vite@latest > crear proyecto “VITE” (0.15MG)

npm create vite@latest react-router-6 --template -react

Pagina Vite

npm i (install) 👉 instala

npm run dev || npm start 👉 Inicia servidor de desarrollo

npm install react-router-dom 👉 dependencias

npm run build 👉 Compila la aplicación.

npm test 👉 Ejecuta pruebas definidas.

npm run eject 👉 Expone configuración avanzada.

Fundamentos

🔻Elemento en React 👈 Interfaz virtual representando DOM.

🔻Diferencias 👈 Abstracción vs. Instancia reutilizable.

🔻Elementos HTML 👈 JSX representando estructura HTML.

🔻Reconocer 👈 Etiqueta vs. Función personalizada.

🔻Atributos 👈 Propiedades que configuran elementos.

Diferencia de Escritura

  import ReactDOM from "react-dom" ; 👈 Paquete
  const elemento🔹 = <h1>¡Hola, Mundo!</h1>;
  ReactDOM. render(
  elemento🔹,
  document.getE1ementById("root")🔸
  )

Elemento que solo posee una etiqueta de apertura ya que no contiene texto u otros elementos.

<img src="logo.png" alt="Mi imagen" />

JavaScript en JSX > {JS}

Puedes escribir cualquier expresión válida de JavaScript entre las llaves y su valor será reemplazado.

let nombre = "Gino" ;
 <p>Su nombre es: {nombre.toUpperCase()}</p> variable
 <p>E1 resultado es: {5 * 6}</p> función

COMPONENTES FUNCIONALES

COMPONENTES DE CLASE

🔻Componente de Clase

🔻Método

🔻Método render()

🔻Estructura

? COMPONENTE DE CLASE > Método > Estado

import React from "react";
class NombreComponente extends React.Component {
  render() {
  return <p>Mi Componente</p>;
};}

Conceptos

🔻react 👉 combina HTML con JS

🔻Componentes 👉 Bloques reutilizables de interfaz.

🔻Props (Propiedades) 👉 Datos pasados a componentes.

🔻Estado (State) 👉 Datos dinámicos manejados internamente.

🔻Ciclo de vida del componente:

🔻JSX (JavaScript XML) 👉 Sintaxis para escribir componentes.

🔻Renderizado condicional 👉 Mostrar componentes basado en condiciones.

🔻Manejo de eventos 👉 Interacciones del usuario.

🔻Listas y keys:

🔻Levantamiento de estados (Lifting State Up):

🔻Context API:

🔻Hooks 👉 Funciones para agregar carac a comp funcionales.

🔻React Router:

🔻Refs:

🔻HOC (Higher Order Component):

🔻Virtual DOM 👉 Representación eficiente de la interfaz.

CONTEXT

context 👉 Estado actual de la aplicación.

REDUX

npm install --save @redux-devtools/extension
import { devToolsEnhancer } from '@redux-devtools/extension';
devToolsEnhancer()

Hooks ⬇️ funciones para componentes

🔻useState:

Permite manejar el estado en componentes funcionales.

const [state, setState] = useState(🔸estadoInicial);
estado🔺 🔺actualizador del estado

🔻useEffect:

Permite hacer uso del ciclo de vida en un componente funcional.

similar a componentDidMount y componentDidUpdate en componentes de clase.

useEffect(() => {
  !console.log("Fase de Montaje");
}, []); 👈 se ejecuta una sola vez
}, [stateDependencia]); 👈 se ejecuta cuando cambia de estado

useEffect(() => {
  !console.log("Fase de Actualizado");
});👈 se ejecuta cuando se redenriza componente 🔄️

useEffect(() => {
  return () => {
    !console.log("Fase de Desmontaje");
  }
});

🔻useContext:

Permite el consumo de un contexto en componentes funcionales.

const contextValue = useContext(MyContext);

🔻useReducer:

Alternativa a useState para manejar estados complejos y lógica de actualización en componentes funcionales.

const [state, dispatch] = useReducer(reducer, initialState);

MEMORIZACIÓN

🔻memorización > usar con cautela

🔻useCallback:

Memoriza funciones para evitar que se vuelvan a crear en cada renderización.

const memoizedCallback = useCallback(() => {
  ...
}, [dependencies]);

🔻useMemo:

Memoriza un valor calculado para evitar su recálculo en cada renderización.

const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);

🔻useRef:

Crea un objeto mutable que persiste a lo largo de renderizaciones y no provoca una nueva renderización cuando cambia.

const myRef = useRef(initialValue);

🔻useImperativeHandle:

Personaliza el valor o las funciones expuestas por un useRef.

useImperativeHandle(ref, () => ({
! Funciones expuestas
}), [dependencies]);

🔻useLayoutEffect:

Similar a useEffect, pero se ejecuta de manera síncrona después de todas las mutaciones del DOM.

useLayoutEffect(() => {
   Efecto sincrónico después de las mutaciones del DOM
}, [dependencies]);

🔻useDebugValue:

Muestra un valor en las DevTools cuando se inspecciona un gancho personalizado.

useDebugValue(value);

React Router⬇️ Librería

🔻BrowserRouter 👉 Enrutamiento basado en navegador.

🔻Route 👉 Define renderización basada en ruta.

🔻Switch 👉 Renderiza la primera coincidencia.

🔻Link 👉 Navegación sin recarga completa.

🔻NavLink 👉 Enlaces con estilos activos.

🔻Redirect 👉 Redirección automática basada en ruta.

🔻withRouter 👉 Conecta componente a ubicación.

🔻useHistory 👉 Acceso al historial del navegador.

🔻useLocation 👉 Acceso a la ubicación actual.

🔻useParams 👉 Obtén parámetros de la URL.

Redux ⬇️ biblioteca

biblioteca de gestión de estado que ayuda a mantener el estado de la aplicación de manera centralizada y predecible, facilitando la manipulación y actualización de los datos en toda la aplicación de React.

🔻Store 👉 Almacén centralizado de estado.

🔻Reducer 👉 Cambios de estado por acción.

🔻Action 👉 Objeto que describe intención.

🔻Dispatch 👉 Despacha acciones para cambios.

🔻Middleware 👉 Funciones para lógica intermedia.

🔻Provider 👉 Proporciona acceso global al store.

🔻connect 👉 Conecta componente a Redux.

🔻mapStateToProps 👉 Mapea estado a props.

🔻mapDispatchToProps 👉 Mapea acciones a props.

🔻combineReducers 👉 Combina múltiples reducers en uno.

🔻createStore 👉 Crea un nuevo store Redux.