Size: a a a

React Native — русскоговорящее сообщество

2020 January 15

I

InvalidHuman in React Native — русскоговорящее сообщество
спасибо
источник

GB

Gena Black in React Native — русскоговорящее сообщество
Gena Black
Сейчас попробую измерить изменения в производительности. Мы в течение последних двух недель на проекте потихоньку избавляемся от native-base и она сейчас "островками" только осталась... в каких-то блоках Text оттуда, где-то ещё что-то... А была везде - drawer, navigation header, screen container и т.п.
В целом я бы даже остался с ней, возни меньше, но в этом проекте её умудрились начать использовать без создания кастомной темы и вся кастомизация шла через стили, что как бы убило весь смысл её использования, только мешающее поведение осталось типа невозможности избавиться от хэндлинга статусбара в хидере и т.п.

Как раз собирался оценить как что поменялось.
Ну вот смотрите, тут конечно native-base не доконца выпилен и менялось не только это. Но тем неменее, что есть, проект живой. Померил два экрана, условно две версии "old" -> "new". В старой версии native-base используется относительно широко, главное для хидера. Иерархия это вложенность компонентов (я их брал выборочно). Root - это корень дерева рендера, оно большое, потому как react-navigation.

Эран с тяжелым списком и табами (они остались на native-base):
- Root: 92ms -> 84ms
 ⁃ PollsListScreen: 66ms -> 59ms
   ⁃ ScreenHeader: 22ms -> 6ms (вот здесь выпилился native-base)
   ⁃ ScrollableTabView: 42ms -> 49ms
     ⁃ Styled(DefaultTabBar): 10ms -> 12ms
     ⁃ Styled(Tab): 26ms -> 29ms
       ⁃ ActivePollsTab: 24ms -> 27ms (здесь менялась логика но чуть-чуть, из-за этого видимо выше по дереву какие-то изменения, не анализировал подробно)

Экран с почти статическим контентом (там тоже остался native-base, но в виде пары Text):
- Root: 70ms -> 37ms
 - HelpScreen: 39ms -> 15ms
   - ScreenHeader: 22ms -> 4ms (да-да, тот же самый ScreenHeader, что и выше)

Картинки (только кусочки, вообще с этим нормально можно только динамически работать в профайлере):
- старый: http://vovkasm.skitch.vovkasm.org/PollsListScreen-v1_0_2_23CF9495.png
- новый: http://vovkasm.skitch.vovkasm.org/PollsListScreen-v1_1_0_23CF9FB2.png
источник

G

George in React Native — русскоговорящее сообщество
кто-нибудь сталкивался с проблемой, что при установке через yarn.  Потом отваливаются либы и надо устанавливать заново?
источник

ЮС

Юрий Слободчиков in React Native — русскоговорящее сообщество
Физику знает кто-нибудь?
источник

R

Rik in React Native — русскоговорящее сообщество
Смотря какую
источник

R

Rik in React Native — русскоговорящее сообщество
Физику знает кто-нибудь?
источник

BS

Bogdan Shelomanov in React Native — русскоговорящее сообщество
в рн с помощью ref можно получить позицию елемента? или вообще текущую прокрутку на странице?
источник

DT

Daniil Tchernyavsky in React Native — русскоговорящее сообщество
ты X/Y можешь получить через measureInWindow у рефа нужного
источник
2020 January 16

GB

Gena Black in React Native — русскоговорящее сообщество
Bogdan Shelomanov
в рн с помощью ref можно получить позицию елемента? или вообще текущую прокрутку на странице?
С помощью ref можно получить дескриптор нативной ноды, дальше используя его можно получить её метрики, как выше написали через модуль UIManager.
UIManager.measure - выдаст позицию и размеры ноды относительно непосредственного родителя, как onLayout
UIManager.measureInWindow - выдаст позицию относительно "окна" приложения
UIManager.measureLayout - выдаст позицию относительно другой ноды
Все методы асинхронные и могут выдать фигню, если нода успела удалиться или наоборот ещё не отрендерилась, т.к. в отличие от onLayout выполняются не в потоке лэйаута, а в UI thread.
источник

GB

Gena Black in React Native — русскоговорящее сообщество
За документацией в 0.61 лучше сюда ходить - полнее будет: https://github.com/facebook/react-native/blob/0.61-stable/Libraries/ReactNative/NativeUIManager.js
источник

G

GrafMine in React Native — русскоговорящее сообщество
https://github.com/react-navigation/navigation-ex/blob/master/packages/core/src/__tests__/useNavigation.test.tsx#L115

такой вопросик, почему тут ошибка должна быть ? не льзя вызывать useNavigation() внутри функции ?
источник

G

George in React Native — русскоговорящее сообщество
Кто-нибудь такого покемона ловил с reanimated-bottomsheet
источник

G

George in React Native — русскоговорящее сообщество
источник

GB

Gena Black in React Native — русскоговорящее сообщество
нельзя вызывать не внутри ф-ции, нельзя вызывать вне контекста навигатора.
источник

NG

Nail Gyro in React Native — русскоговорящее сообщество
Как правильно интегрировать телеграмм чат в приложении на expo
источник

S

Sulpiride in React Native — русскоговорящее сообщество
Ребят, а зачем нужен react native web, если у нас и так есть обычный react?
источник

Q

Qwe in React Native — русскоговорящее сообщество
Sulpiride
Ребят, а зачем нужен react native web, если у нас и так есть обычный react?
Чтобы реакт нативное приложение в браузер портировать
источник

НЛ

Настя Лившун in React Native — русскоговорящее сообщество
Доброй ночи 😊
Подскажите, пожалуйста, подходит ли React для разработки интернет-магазина?
И какая может быть стоимость?
источник

AV

Anton Vlasov in React Native — русскоговорящее сообщество
Настя Лившун
Доброй ночи 😊
Подскажите, пожалуйста, подходит ли React для разработки интернет-магазина?
И какая может быть стоимость?
Очень подходит, т.к не требует специфичных фич платформы
Стоимость разная, в зависимости от сложности и требований. Условный озон пилят десятки людей уже много лет, но какой нить магазин цветов вполне реально сделать быстрее
источник

AM

Aqua Min in React Native — русскоговорящее сообщество
Нужно ли использовать reselect при фильтре массива?
Ситуация следующая, есть какой-то массив и поле ввода для поиска куда вводятся рандомные буквы и соответственно появляются новые картинки,  или для этого реселект не предназначен и лучше делать это в компоненте?
источник