Portales de React

 

 

 

Portales de react 1

Descubra cómo utilizar los portales de React

React 16, lanzado en septiembre de 2017, introdujo los Portales.

Un portal es una forma de representar un elemento fuera de su jerarquía de componentes, en un componente separado.

Cuando se representa ese evento, los eventos que ocurren en él son administrados por la clasificación de componentes de React en lugar de por la clasificación establecida por la posición DOM del elemento.

De ahí el nombre “portal”: un elemento se encuentra en algún lugar del árbol DOM que está fuera del árbol de componentes de React normal, pero el árbol de componentes de React que lo incluye sigue estando a carga.

 

React ofrece una API sencilla para hacer esto, ReactDOM.createPortal()que acepta dos argumentos. El primero es el elemento que se va a representar y el segundo es el elemento DOM donde se representará.

Un caso de uso clásico para esto son las ventanas modales.

Un modal que se renderiza en pantalla completa debe estar fuera del elemento, para que pueda diseñarse correctamente mediante CSS.

Entonces, si un modal se define como un componente:

class Modal extends React.Component { constructor(props) { super(props) this.el = document.createElement('div') } componentDidMount() { document.getElementById('modal').appendChild(this.el) } componentWillUnmount() { document.getElementById('modal').removeChild(this.el) } render() { return ReactDOM.createPortal( this.props.children, this.el ) }}

Podemos hacer que un componente de aplicación lo represente, y todos los eventos que ocurran en el componente modal serán manejados por la aplicación, aunque técnicamente el modal se representa en un árbol DOM diferente: Fotos Porno y actrices porno

class App extends React.Component { constructor(props) { super(props) this.state = {showModal: false} this.handleShow = this.handleShow.bind(this) this.handleHide = this.handleHide.bind(this) } handleShow() { this.setState({showModal: true}) } handleHide() { this.setState({showModal: false}) } render() { const modal = this.state.showModal ? ( Modal div The modal button onClick={this.handleHide}Hide/button /div /Modal ) : '' return ( div The app button onClick={this.handleShow}Show modal/button {modal} /div ) }}ReactDOM.render(App /, document.getElementById('app'))

Vea el ejemplo completo en https://codepen.io/flaviocopes/pen/KbdagX

 




Tal vez te puede interesar:

  1. Introducción a React
  2. Agregar evento de clic a los elementos DOM devueltos desde querySelectorAll
  3. Cómo cambiar el valor de un nodo DOM
  4. Cómo comprobar si un elemento DOM tiene una clase

Portales de React

React 16, lanzado en septiembre de 2017, introdujo los Portales. Descubra cómo utilizar los portales de React Descubra cómo utilizar los portales de React

programar

es

https://aprendeprogramando.es/static/images/programar-portales-de-react-1903-0.jpg

2024-10-29

 

Portales de react 1
Portales de react 1

 

 

Update cookies preferences