Understanding Stateless Widgets in Flutter - A Beginner's Guide

Learn about Stateless Widgets in Flutter, their properties, and how to use them in your app development projects.

This article provides a comprehensive introduction to the concept of stateless widgets in Flutter, including their properties and how to create them using code examples.


import 'package:flutter/material.dart';

void main() {
    const MaterialApp(
      title: 'My App',
      home: MyWidget(message: 'My Message'),

// Define a stateless widget that takes a message as a property
class MyWidget extends StatelessWidget {
  final String message; // Define a final property for the message

  // Create a constructor that requires the message property
  const MyWidget({super.key, required this.message});

  // Build method that returns a Center widget with a Text widget
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Text(
          message, // Display the message text
          style: const TextStyle(
            fontSize: 18,



  • Stateless widgets are immutable, which means their properties cannot be changed once they are created.
  • They do not have any internal state or data, which makes them lightweight and faster to render.
  • They receive their data or properties from their parent widget and use them to build their UI.
  • Stateless widgets are typically used for presenting static content that doesn't change frequently, such as text, images, or buttons.
  • They can be reused multiple times within an app and across different screens, which makes them a powerful tool for creating a consistent user interface.

Unlike Stateful Widgets, Stateless Widgets do not have a lifecycle because they are immutable and their properties cannot be changed once they are created.

In summary, the lifecycle of a Stateless Widget is simple: it is created when it is added to the widget tree, it builds its UI based on its properties, and it remains in that state until it is removed from the widget tree.