Avoid StatefulWidgets as much as possible

Do

class CustomTextButton extends StatelessWidget {
  ...
}


Don't

class CustomTextButton extends StatefulWidget {
  const CustomTextButton{Key? key}  : super(key: key);

  @override
  State<CustomTextButton> createState() => _CustomTextButtonState();
}

class _CustomTextButtonState extends State<CustomTextButton>{
  ...
}


Conclusion: StatefulWidget can rebuild itself, it also decreases the performance. That's why always use StatelessWidget and only if necessary StatefulWidget and use constructor of the reusable widget.