a
- реактивность с использованием иммутабельности, т.е. через change detection вообще не производительная и оверхедная как с точки зрения библиотечного кода, так и с точки зрения пользовательского.
Решите ка мне такую задачу:
function TableWithFilters() {
const [filter, updateFilter] = useState()
const getData = useCallback((cursorId) => api.get('/rows', {filter, cursorId}), [filter])
return <>
<input value={filter} onChange={e => updateFilter(e.target.value)} />
<Table getData={getData}/>
</>
}
Есть компонент Table с методом getData, который дергается при нажатии кнопок пагинации, которые внутри таблицы. Фильтры у нас описаны отдельным компонентом и проблема в том что при изменении фильтра нам нужно пересоздать функцию getData и сделать ререндер таблицы. Но ререндер таблицы - дорогая операция, ее нет смысла делать на каждый onChange. Задача - не вызывать Table при изменении фильтра, но предоставлять актуальный getData