Какие знаешь абстракции Flutter
Python
Junior
Без компании
Какие знаешь абстракции Flutter
Ответы
Во Flutter есть несколько ключевых абстракций, которые помогают в разработке:
- **Widget** – базовая единица UI. Все элементы (кнопки, текст, контейнеры) являются виджетами.
- **State** – управляет изменяемыми данными виджета. Бывает `StatelessWidget` (без состояния) и `StatefulWidget` (с состоянием).
- **BuildContext** – контекст, в котором строится виджет, используется для навигации, тем и доступа к родительским виджетам.
- **Element** – связывает виджет с реальным отображением в дереве.
- **RenderObject** – отвечает за компоновку (layout) и отрисовку (painting) виджетов.
Пример `StatefulWidget`:
```
class Counter extends StatefulWidget {
@override
_CounterState createState() => _CounterState();
}
class _CounterState extends State<Counter> {
int count = 0;
void increment() {
setState(() => count++);
}
@override
Widget build(BuildContext context) {
return Text('Count: $count');
}
}
```
Также есть абстракции для анимаций (`Animation`, `Tween`), маршрутизации (`Navigator`, `Route`), управления состоянием (`Provider`, `Bloc`).