Что нужно знать про Keys: ValueKey, ObjectKey, UniqueKey, GlobalKey во Flutter/Dart?

FlutterMiddle: уверенно применяет в рабочем проекте, видит риски и тестируемостьFlutter CoreТеорияflutterflutter-corekeyswidget-identity

Что хотят услышать интервьюеры:

Коротко: Key помогает Flutter сопоставлять старые и новые элементы дерева, особенно в списках и при перестановках.

Ответ:

Где применяется:

  • ValueKey стабилен по идентификатору
  • UniqueKey всегда новый и сбрасывает состояние
  • GlobalKey дорогой и нужен редко

Пример:

ListTile(key: ValueKey(user.id), title: Text(user.name));

Как отвечать на собеседовании: объясните назначение, границы применения и почему это лучше альтернативы в конкретном сценарии. Типичная ошибка: ставить UniqueKey на каждый item списка.

Источники

Похожие вопросы