Parece que los componentes de React siempre ejecutan su método de renderizado cuando su componente principal se procesa, incluso si no cambiaron el estado o las propiedades del componente secundario, incluso si el componente secundario no tiene estado ni propiedades.
¿Se supone que esto es así? ¿Hay alguna ineficiencia en esto? Cambiar el componente secundario a PureComponent soluciona esto y el componente secundario no se volverá a renderizar. ¿Debería preferir PureComponents a los componentes normales?
Si desea controlar lo que hace que un componente se reproduzca, entonces debe usar shouldComponentUpdate
, que se puede usar en todos los componentes de reacción a menos que sean componentes funcionales sin estado. PureComponent básicamente usa un shouldComponentUpdate
automáticamente y realiza una verificación superficial de los accesorios/estados pasados y actuales y, si hubo un cambio, se volverá a procesar.
A veces, es posible que esté tratando con estructuras de datos más complejas y quiera tener el control de shouldComponentUpdate
usted mismo, en ese caso, simplemente siga las instrucciones del método de ciclo de vida aquí.
https://facebook.github.io/react/docs/react-component.html#shouldcomponentupdate
Aquí también está la información para PureComponent
https://facebook.github.io/react/docs/react-api.html#react.purecomponent