Every single keyword in Dart and variable must be declared in it's own file.
❌ BAD - Grouping concerns.
// foo.dart
final class Foo extends StatefulWidget {
const Foo({super.key});
@override
State<Foo> createState() => _FooState();
}
final class _FooState extends State<Foo> {
@override
Widget build(_) {
return const Text('Hello, World!');
}
}
✅ GOOD - Separating concerns into their own files.
// foo.dart
part '_foo_state.dart';
final class Foo extends StatefulWidget {
const Foo({super.key});
@override
State<Foo> createState() => _FooState();
}
// _foo_state.dart
part of 'foo.dart';
final class _FooState extends State<Foo> {
@override
Widget build(_) {
return const Text('Hello, World!');
}
}