Выбор ответа Middle Анимации и жесты обновлено

Gesture Handler против PanResponder

Вопрос

Почему для перетаскивания используют react-native-gesture-handler с Reanimated, а не PanResponder?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Жест распознаётся нативно, а с Reanimated элемент двигается без участия JS. PanResponder обрабатывает касания в JS: каждое движение пальца проходит через JS-поток, и при нагрузке перетаскивание отстаёт.

Варианты ответа

  1. PanResponder не работает на Android, поэтому для кроссплатформенности нужен Gesture Handler
  2. PanResponder удалён из актуальных версий React Native
  3. Жест распознаётся нативно, а с Reanimated элемент двигается без участия JSправильный ответ
  4. Gesture Handler встроен в React Native и не требует установки и настройки

Разбор

PanResponder обрабатывает касания в JS: каждое движение пальца проходит через JS-поток, и при нагрузке перетаскивание отстаёт. Gesture Handler распознаёт жесты на нативной стороне и умеет их комбинировать, а Reanimated позволяет менять позицию в worklet. PanResponder существует и работает на обеих платформах, а Gesture Handler это сторонняя библиотека, её нужно установить и обернуть корень в GestureHandlerRootView.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.