Migration и compatibility
Этот раздел помогает переходить между версиями, сохранять стабильные контракты и избегать регрессий.
1) Контракт идентичности строк
- У каждой строки должен быть стабильный
rowId(илиid/key). - Если структура нестабильна — задайте
features.selection.resolveRowKey(row, index).
2) Обновление данных
- При замене данных используйте
api.refreshRows("manual"). - При смене колонок —
api.refreshColumns("manual").
3) Стабильность сортировок/фильтров
- Всегда сохраняйте
keyколонок между версиями. - Избегайте переименования
keyбез миграции состояния.
4) Back‑compat поведения UI
Если меняете UI‑адаптер:
- сохраните bindings
grid.ui.bindHeaderCell,grid.ui.bindDataCell, - сохраните a11y‑роль и roving‑tabindex,
- не ломайте контракты
actionButtonи context menu.
5) Что делать при расхождениях
- Снимите
api.getRowSnapshot()до/после изменения. - Сравните
sort/filter/groupмодели. - Используйте runtime‑events для диагностики.