@reactnative_ru

Страница 807 из 878
aspirin
05.09.2018
16:16:46
На яве под андройд такого не было, все быстро рендерилось. Я понимаю что там совсем нативный код, но все же не понимаю чего там такого страшного вычесляется на рендере каждого итема. Какбудто кто-то там биткоины майнит втихоря

aspirin
05.09.2018
16:20:05
Я пробывал несколько, помоему 3 штуки, сейчас посмотрю по истории какие

Google
Dmitry
05.09.2018
16:20:21
Используй FlatList и будет тебе счастье

aspirin
05.09.2018
16:20:39
VirtualizedList, FlatList и еще акакойто самый простой

Вот последний я сменил с Flat на Virtualized очень коряво для тестов

あなたの神
05.09.2018
16:21:12
FlatList самая производительная опция

aspirin
05.09.2018
16:21:43


Вот мой говнокод на коленке для тестов

поставил initialNumToRender большой т.к. проще полождать пока все отрендерит, иначе не работают клики на элементы пока все не зарендерятся

あなたの神
05.09.2018
16:23:24
Может проблема не в листе, а в самом реквесте?

aspirin
05.09.2018
16:23:57
Может проблема не в листе, а в самом реквесте?
Реквест выполнятся за долго до, я его дебажил а вот рендер проходит долго, по пачкам

ща запущу и покажу

aspirin
05.09.2018
16:24:50
У тебя через ридакс все?
нет, при инциализации кмопнента делается аякс запрос и в стейт кладется ответ

Google
aspirin
05.09.2018
16:26:01
あなたの神
05.09.2018
16:26:06
Так нельзя

Ну, типа, антипаттерн

aspirin
05.09.2018
16:26:18


あなたの神
05.09.2018
16:26:20
Это во первых

aspirin
05.09.2018
16:26:34
Так нельзя
я лб этом слышал, но как правильно?

あなたの神
05.09.2018
16:26:36
В во вторых, попробуй рендерить не все 300-500 элементов

aspirin
05.09.2018
16:26:58
ComponentDidMount
а я так и сделал, сорян не прочитал

^

あなたの神
05.09.2018
16:27:36
^
Понял. Ну, просто нет смысла сразу все 300+ элементов выгружать

aspirin
05.09.2018
16:27:58
Понял. Ну, просто нет смысла сразу все 300+ элементов выгружать
у меня длинное меню по макету, и удобно тудя сюда скроллить

あなたの神
05.09.2018
16:28:43
у меня длинное меню по макету, и удобно тудя сюда скроллить
Попробуй наследовать от PureComponent класс :^)

А вообще, ты профайлер юзал-то?

aspirin
05.09.2018
16:30:28
Понял. Ну, просто нет смысла сразу все 300+ элементов выгружать
Сейчас я запущу проект, покрою дебагами и скину куски которые меня смущают. Вся проблема в том что у приложений конкурентов есть такие списки и работают шустро. а также меня смущает что многие приложения которые заявляют что написанны на rn работают со списками намного длинее и сложнее и при этом очень быстро. начинает казатся что от меня утаивают какуюто хитрость

aspirin
05.09.2018
16:41:52
Профилировать надо, а не покрывать ))
я в rn нуб, это что-то из стандартного набора или доп пакеты?

Google
aspirin
05.09.2018
16:43:14
this https://facebook.github.io/react-native/docs/performance ?

Gena
05.09.2018
16:43:51
я в rn нуб, это что-то из стандартного набора или доп пакеты?
Это в Chrome можно делать в дебаггере. Я ща с телефона, не могу подробно описать, но может кто ещё напишет как.

Да, оттуда были ссылки вроде

Dmitry
05.09.2018
17:06:31
Что за дичь с асинками

У нас тут не так давно было разбирательство с FlatList и его прои зводительностью

aspirin
05.09.2018
17:14:23
Что за дичь с асинками
это временная фигня для тестов, грязно написанно

Pavel
05.09.2018
17:20:12
Всем доброго времени суток. Вопрос немного не по реакту но про мобилы. Есть Android Galaxy x6 - приложение с магазина ставится и работает хорошо, а с apk ставится но не работает, может какие настройки?

ктонибудь сталкивался?

aspirin
05.09.2018
17:20:40
Я могу снять профилирование с expo или мне нужно его скомпилить?

aspirin
05.09.2018
17:22:03
Можешь
через systrace?

Stas
05.09.2018
17:22:09
FlatList самая производительная опция
flatlist это обертка над virtualizedList

あなたの神
05.09.2018
17:22:12
aspirin
05.09.2018
17:22:36
Да
а какое имя пакета задавать )))

aspirin
05.09.2018
17:25:52
ключи не должны быть рандомными)
это в процессе тестов, разницы особой не было, раньше не были рандомные

Stas
05.09.2018
17:26:30
ну с рандомными ключами каждый элемент реднерится каждый раз с нуля

aspirin
05.09.2018
17:26:41
я сейчас привожу все в нормальный вид что бы снять 2 профалинга 1. Просто с текстом 2. С компонентом

Google
Dmitry
05.09.2018
18:05:37
я сейчас привожу все в нормальный вид что бы снять 2 профалинга 1. Просто с текстом 2. С компонентом
У тебя картинки есть в итемах? У меня списки только с текстом спокойно рендерятся по 1000 штук

aspirin
05.09.2018
18:06:33
вот этот пример работает > 30 сек

там чуть больше 500 строк

Dmitry
05.09.2018
18:07:18
А че за getRandomKey

Убери getitem, сделай количество начальных элементов поменьше

Dmitry
05.09.2018
18:22:20
Поставь FlatList

А он у тебя случаем не внутри ScrollView ????

Dmitry
05.09.2018
18:23:37
Убирай

Оберни в обычный view

aspirin
05.09.2018
18:25:52
Убирай
спасибо больше, его другой разработчик добавил а я не заметил

даже не вникал в его работу а теперь понял )))

Ну теперь с этим можно работать, быстренько грузит даже компонент с картинками

Dmitry
05.09.2018
18:30:22
Там по сути получается так. FlatList реагирует на скроллинг для перерисовки видимой части списка, а ScrollView вызывает событие скроллинга при изменении списка и получается, что FlatList вызывает скроллинг на ScrollView, а то в свою очередь вызывает перерисовку FlatList

Dmitry
05.09.2018
19:12:03
Есть у кого на примете ресурсы с шаблонами приложения, вроде темфореста

Google
Ihor
05.09.2018
19:30:13
Есть у кого на примете ресурсы с шаблонами приложения, вроде темфореста
NativeBase https://nativebase.io/ У них есть стартер паки (бесплатные и платные)

Есть у кого на примете ресурсы с шаблонами приложения, вроде темфореста
Маркет: https://market.nativebase.io/?utm_source=nativebase&utm_medium=showcase+section&utm_campaign=nativebase&affiliate_code=20535682-NAT-196333

Igor
05.09.2018
20:54:30
Ни у кого здесь не было опыта с нативной зависимостью, устанавливаемой через pod'ы и содержащей сфитовый код?

Dmitry
05.09.2018
20:59:02
у нас у всех нативная зависимость)

уже глаз дергается

morda
05.09.2018
21:01:50
гггг точняк)

Igor
05.09.2018
21:13:51
я скорее вот про это https://github.com/facebook/yoga/issues/711

Алексей
05.09.2018
21:15:16
Igor
05.09.2018
21:15:46
я думаю это почти ко всем подам со свифтом относится

Peter
05.09.2018
21:19:23


Gena
05.09.2018
21:28:27
я скорее вот про это https://github.com/facebook/yoga/issues/711
Я некоторое время назад общался с одним товарищем и получилось это победить (у него своим способом, у меня своим). Я патчил RN (но мы всё равно его патченный используем)... патчи отдокументированны здесь: https://github.com/vovkasm/react-native/commits/cocoapods-frameworks В основную нашу ветку я их не вносил, т.к. мы фреймворки не используем. И сейчас попробую найти переписку (в одном из ишьюс была)

Gena
05.09.2018
21:40:29
На всякий случай... там народ тоже сделал фикс фикса фиксов и замутил плагин к cocoapods, который патчит RN на лету ))) Это не я если что, я на такое извращение не способен и не пользуюсь... но может пригодится кому ))) Вот он: https://github.com/orta/cocoapods-fix-react-native

Igor
05.09.2018
21:41:41
Да, вот я это тоже нашел и мне не помогло сходу

хотя я наверное попробую завтра твой форк запутстить, вдруг связет

Gena
05.09.2018
21:44:11
Да. Открыть в Xcode, смотреть на структуру проекта и подробный вывод процесса сборки. Но сперва убедиться, что в папке node_modules всё есть, т.е. выполнена команда npm install

Страница 807 из 878