react-puro-19
  • React Puro - 19
  • code
    • README
    • README
    • README
    • README
    • README
    • README
    • README
    • README
  • 7-state-en-clases
    • Ejemplo inicial: un contador
    • Manejo de eventos
    • El state
    • Sintaxis limpia en Class Components
    • setState es Asincrónico
    • Fusión superficial vs profunda
  • 5-children
    • Personalizar Children antes de renderizar
    • PropTypes para Children
    • Los Children
    • Diferentes tipos de Children
    • Manejando uso Children
  • 13-hook-usereducer
    • Qué es un Reducer?
    • Un ejemplo más practico
    • Entonces, Redux murió?
  • 4-proptypes
    • Documentación y depuración incluida
    • PropTypes como documentación
    • Cómo validar, formas comunes
    • Ejemplo Tweet con PropTypes
  • 3-props
    • Comunicación con componentes Padre
    • Las Props:
    • Pasar Props
    • Recibir Props
    • Ejemplo Tweet con Props
  • 11-pensando-uso-state
    • "Tipos" de componentes
    • Qué colocar en el State
    • Dónde mantener el estado
    • Pensando declarativamente
  • 9-requests-api
    • Intro
    • Eligir libreria HTTP
    • Obtener datos y mostrarlos
  • 10-state-en-funciones
    • El useState Hook
    • Actualizar State basado en State anterior
    • State como un Array
    • Reglas de los Hooks
    • La "magia" de los Hooks
    • State como un Objeto
    • Intro Hooks
  • 15-api-context
    • Usando React API Context
    • Patrón "Slots"
    • Patrón "Render Props"
    • Intro API Context
    • Otros Patrones de Context
    • Ejemplo perforación de props
    • hook_usecontext
  • 8-ciclo-vida-componente
    • Fases
    • El ciclo
    • Manejo de errores
    • Desmontaje
    • Representación
    • Montaje
  • 14-hook-useeffect
    • Límite cuando se ejecuta un Effect
    • Hacer cambios visibles del DOM
    • Obtener datos (Fetch) con useEffect
    • Intro useEffect
    • Re-obtener datos (Re-Fetch) cuando cambian
    • Solo ejecución en montaje y desmontaje
  • 2-jsx
    • Ejemplo componente Tweet:
    • JSX:
    • Trabajando con JSX:
  • 12-controles-entrada
    • Entradas controladas
    • Entradas no controladas
  • 6-github-file-list
    • Parte 2: la Prop 'key'
    • Parte inicial
  • 1-hola_mundo
    • Hola mundo:
Con tecnología de GitBook
En esta página

¿Te fue útil?

  1. 7-state-en-clases

Sintaxis limpia en Class Components

En sección de tema anterior se menciono que las clases se pueden escribir sin un constructor. Se verá cómo funciona esto.

Aqui con el mismo ejemplo de antes, del componente CountingParent reescrito sin un constructor:

class CountingParent extends React.Component {
    // inicializar state con una propiedad inicializadora
    // se puede acceder usando this.props de ser necesario
    state = {
        actionCount: 0
    };

    // escribir el handler como una función de flecha
    // significa que retendrá el valor adecuado de
    // `this`, para poder evitar el tener que vincularlo (bind)    
    handleAction = (action) => {
        console.log('Child says', action);

        // Reemplazar actionCount con un valor incrementado
        this.setState({
            actionCount: this.state.actionCount + 1
        });
    }

    render() {
        return (
            <div>
                <Child onAction={ this.handleAction} />
                <p> Clicked { this.state.actionCount} veces </p>
            </div>
        );
    }
}

El constructor desapareció y, en su lugar, se usa inicializadores de propiedades para inicializar el estado y crear la función handleAction.

Esto ahorra algunas líneas de código repetitivo y hace que la clase sea más fácil de leer.

La sintaxis del inicializador de propiedades es algo reciente, casi o menos de 1 año, (2019-2020), pero ya se usa ampliamente en la comunidad React y ha sido respaldada por Babel y Create React App hace tiempo. A lo que se consideraría seguro de usar.

AnteriorEl stateSiguientesetState es Asincrónico

Última actualización hace 5 años

¿Te fue útil?