Наша команда работает с React Native уже почти год, и одной из проблем, с которой мы столкнулись на ранних стадиях, является скорость рендеринга. В нашем приложении есть несколько компонентов, которые нужно перетаскивать пользователю, а изменения состояния (в сочетании с shouldComponentUpdate) были просто недостаточно быстрыми, чтобы достичь этой цели.Избегайте государственных изменений в действии коренных - это кошерная?
Мы обошли это двумя способами, и мне было интересно, насколько эти методы кошерны против хаков.
Прямое манипулирование и наборNativeProps - Мы часто использовали setNativeProps, что мы создали инфраструктуру, подобную Redux; однако вместо изменения состояния он использует setNativeProps для скорости. Целью этого было расширение setNativeProps вне его использования исключительно внутри компонента; однако мы по-прежнему используем изменения состояния, когда это возможно.
Scrollview и TextInput - Нам удалось повернуть и сориентировать Scrollviews и TextInputs таким образом, чтобы работать с setNativeProps, так что перетаскивание контента является более гладким и роднее, и текст может быть изменен быстрее, чем изменение состояния позволит.
Нам было интересно, как кошерный все это, как Реагировать Родной сайт только отмечает ее сложность:
setNativeProps является обязательным и сохраняет состояние в родном слое (DOM, UIView и т.д.), а не в ваших компонентах React, что затрудняет ваш код.
Следует ли переделать наше приложение?
Вы используете непреложные слова? То, что вы описываете, определенно не очень хорошо реагирует. Вопрос в том, не следует ли вам вместо этого перейти на родное развитие? React-native все еще молодой продукт, и не все его проблемы с производительностью решены. – Sulthan