Модуль 10 · Урок 40
Explicit UI state, render cycle і interaction QA
DOM не повинен бути прихованою базою даних. Один explicit state проходить event → normalize/validate → transition → render; QA перевіряє state, DOM, feedback і focus разом.
Predictable render cycle
function addBook(title) {
state = { ...state, books: [...state.books, { id, title }] };
render();
}Derived count/filter labels обчислюються зі state, а не з кількості current DOM nodes. Transition не мутує nested collection випадково. Render відображає empty/ready/error/success state і не краде focus.
Interaction matrix
Status повідомляє результат без надмірних announcements. При rerender зберігайте або осмислено відновлюйте focus; не фокусуйте status після кожної дрібної зміни.
Лабораторна
Завершіть starter, потім заповніть state transitions, focus/keyboard matrix, fixtures та interaction record. Acceptance: no real submit/network/storage, safe text rendering, predictable repeated actions і no unexplained Console errors.
Офіційні джерела
Закріпіть матеріал уроку
Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.