Cap. 6 Diferencias entre StatelessWidget y StatefulWidget

Jean Paul Gotopo M.
3 min readJan 21, 2020

--

Después de algunos inconvenientes, entre ellos, referentes a la salud, vuelvo y continúo con el HandBook Online de Flutter.

Casi todo el código de ejemplo que se encuentra disperso en el mundo de Flutter a menudo usa Stateless y Stateful para crear un Widget. Pero, ¿cuál es exactamente la diferencia entre los dos?
Anteriormente debemos entender que al hacer una interfaz con Flutter, todos los componentes que usamos se llaman Widgets.

En Flutter Todo es Widget.

Stateless Widget

Es un Widget que se construye solo con configuraciones que se iniciaron desde el principio. Entonces Stateless Widget es un widget que nunca cambiará.
Por ejemplo, creamos una aplicación que contiene Text con el número 10. Entonces nuestra aplicación no tiene función para cambiar ese número. Entonces, lo que se usa aquí es Stateless Widget.

Stateful Widget

Es un widget que puede cambiar dinámicamente. Entonces, cualquier Widget que cambie, sí, se llama Widget con estado. Por ejemplo hacemos una aplicación donde si presionamos el botón “+1”, El número en el medio de la pantalla aumentará en uno.

La función setState () le dirá al framework(marco) que un objeto ha cambiado en el Estate(Estado), luego reconstruirá el Widget.

Resultado

setState () en Stateless Widget

Entonces, ¿es posible usar la función setState () en widgets sin estado? La respuesta es no. Aparecerá un error como el siguiente si intentamos usar la función en StatelessWidget.

StatefulWidget en los Widgets predeterminados de Flutter
También podemos encontrar widgets con estado utilizados en widgets predeterminados de Flutter como TextField, Radio, Checkbox, etc.

Código fuente del Widget TextField

Resumen

En esencia, si queremos que la pantalla cambie dinámicamente mientras la aplicación se está ejecutando, utilizaremos el Statefulwidget . Si no, solo necesita usar StatelessWidget.
Entonces, ¿qué pasa con el InheritedWidget y Widget en Flutter? ¿Qué widget es ese? Trataré de discutirlo luego.

Recursos relacionados con este tema

--

--