ArtsyomK
подскажите, стоит ли делать аутентификацию на куках при обращению к api?
ArtsyomK
какой способ аутентификации самый стойкий к взлому? я сохраняю токен в куках
Kto?
Gena
Привет. Я видел доклад, в котором докладчик сказал, что загрузка встроенных изображений (я имею в виду: source = {require ("path / image.png")}) имеет лучшую производительность, чем при использовании импорта, поэтому я запутался, потому что раньше считал, что: для Например, если у вас есть список, и вы повторили изображение для каждого элемента списка, то при одном импорте в верхней части файла ответная команда native будет использовать один и тот же файл вместо загрузки одинаковых изображений (с опцией in-line) для каждого элемента на список. Каково твое мнение?
Использование import img1 from 'img1.png' и const img2 = require('img2') должно быть одинаково по производительности. Просто сгенерите маленький бандл сами (react-native bundle ...) и посмотрите, какой код получится - разница будет мизерной.
Kto?
Я только сейчас перечитал вопрос, и там оказывается было то, на что Гена ответил. (import vs require)
А я имел ввиду про images included via Xcode asset catalogs
Kto?
Kto?
@gblack9 мб ты сможешь проконсалтить в этом вопросе?
luifer
“React Native Image Performance” by Adam Stanford https://link.medium.com/8BLB1BtQ8Z
Спасибо за ответы. Эта статья заставила меня усомниться. Например, для React Native совет: используйте SVG. Но если я перенесу свои ресурсы в собственные ресурсы, мне придется установить их в наилучшем формате. Например, если Android, то PNG или векторные рисунки. Правильно?
Когда я читал ваши ответы, мне кажется, что реальный вопрос повышения производительности - это не «импорт против спроса», а «внутренние активы против активов JS», верно?
luifer
Gena
Спасибо за ответы. Эта статья заставила меня усомниться. Например, для React Native совет: используйте SVG. Но если я перенесу свои ресурсы в собственные ресурсы, мне придется установить их в наилучшем формате. Например, если Android, то PNG или векторные рисунки. Правильно?
Когда я читал ваши ответы, мне кажется, что реальный вопрос повышения производительности - это не «импорт против спроса», а «внутренние активы против активов JS», верно?
Oh, seems like google translate is not so good yet, so could you please write again in english? 😉
luifer
Sure! Sorry For google translator.
First, Thanks for answering.
This article made me have a doubt.
For example, A General rule on React Native is: use SVG.
But if I uses my resources from the native side I will have to set all my resources in its best format.
For example If it is on Android, it will be: PNG or Vector Drawable and not SVG. Right ?
When I read your answers, it seems that the real question of better performance is not “import vs require, but instead it is: “Native assets vs React Native assets”, right?
Gena
Sure! Sorry For google translator.
First, Thanks for answering.
This article made me have a doubt.
For example, A General rule on React Native is: use SVG.
But if I uses my resources from the native side I will have to set all my resources in its best format.
For example If it is on Android, it will be: PNG or Vector Drawable and not SVG. Right ?
When I read your answers, it seems that the real question of better performance is not “import vs require, but instead it is: “Native assets vs React Native assets”, right?
Да, верно. Но это не единственный вопрос. Я просто приведу несколько фактов.
1. SVG рендерить эффективно в RN нельзя. Более того, его невозможно нормально использовать в нативном iOS - нет нормальной библиотеки. Да и под Android нет, он же на стадии компиляции транслирует SVG в vector drawable. То, что программисты RN называют SVG, это JSX похожий на SVG через модуль react-native-svg (более развитый аналог встроенной в RN библиотеки ART). Его производительность очень низкая по сравнению и рендером обычных картинок.
2. Если нужно только два цвета - то вектор можно рисовать через генерацию шрифта (как react-native-vector-icons).
3. Если действительно тормозит вывод картинок, то надо разбираться с причиной, может быть слишком высокое разрешение картинки и происходит масштабирование, может проблемы в RN, может это список с огромным количеством картинок и на телефоне почти кончилась память... это надо измерять в каждом конкретном случае.
luifer
Интересно. Спасибо, что поделились своими знаниями. В заключение я думаю, что для простых иконок я буду использовать response-native-vector-icons, а если изображение сложное, я установлю его относительно родной ресурс.
Anonymous
ArtsyomK
а нахер, если в куки не требуют посторонних либ и поддержка проще?
Gena
Gena
В общем, мне очень интересно увидеть маленький пример кода, который на react-native что-то в куки сохраняет )
Aleksei
ArtsyomK
да не, на сервере в куки помещаешь токен
ArtsyomK
и все
Aleksei
хм, может я что то пропустил, надо будет глянуть
ArtsyomK
то есть код с авторизацией весь серверный, на клиенте только форма отправки логина и пароля через muation graphql
Kto?
?
Aleksei
RO на неделю за мат
Sergei
можно ли изменять в flatlist после рендера , типа там текст или стили через state?
Вадим
если сам не сохраняешь, то не должны
Так, важное сообщение
Все мои изыскания по хранению cookies в React-Native сводятся к этой либе, которая в нашем проекте не работает, да и вообще не поддерживается: https://github.com/joeferraro/react-native-cookies
После того, как я указал разок credential: same-origin , у меня ни один запрос с помощью ReactNative не работает. Нативные методы для вытаскивания cookies - не задокументированы. Кукисы сохранятся не должны, но сохраняются и почистить их никак нельзя. Это треш и угар
Увы, эта библиотека слишком молодая. И багов в ней over 9000.
У кого получилось с куками?
Есть ли способы работать с ними без react-native-cookies либы?
Eugene
А мобилки воообще могут в куки?)
The Max
Anton
Они на мобилках не нужны. Или есть кейсы?
Timoschenko
ребят, такой вопрос.
если есть 2 елемента в массиве и они уже были отрендерены,
если я их свапну местами, это конечно отразатся на экране, но будут ли они полностью перерисованы или как сказать, пересобраны с нуля ?
или оно поймен что это теже элементы по их key={id}
Timoschenko
идея просто такая,
что если иметь еще один view который спрятам из viewport, внем пересобирать все что нужно, и там уже можно будет получать их позицию и размер,
а потом свапать местами.
Timoschenko
или идея не очень ?
Вадим
Вадим
Alex
Друзья! Спасайте, уже битый час мучаюсь с react-native": 0.60.4 и react-navigation": 4.0.6 на ios. На Android вроже все заработало, а вот на ios никак react-native-gesture-handler связать не могу. Связываю вручную. Если кто-то сталкивался с этим вопросом, скиньте пожалуйста ссылочку на инструкцию
ㅤ
ㅤ
Если вручную то там нужно вроде как cd ios && pods install
Alex
Сейчас на этом остановился. В прошлых версия вроде как вручную добавлял в Libraries и Build Phases
ㅤ
А по офф туториалу связываешь?
ㅤ
Там хорошая инструкция
ㅤ
https://reactnavigation.org
Alex
Первые 3 раза пробовал именно по ней. Но я так понял, оказывается react-native-gesture-handler один фиг нужно связывать вручную
ㅤ
Alex
Сейчас попробую еще раз все снести и по официальной инструкции
ㅤ
Да
ㅤ
А потом попробуй перезагрузить симулятор и сделать новый билд
Gena
Там какаята куйня. Не смог разобраться. Не нашел нормальную документацию
Тут лучше через исходный код разбираться (возможно с грепом). Просто куки - это св-во http клиента, RN использует okhttp3 в андроид и нативный http клиент в iOS... с них бы я лично и начал, обнаружил бы API для работы с куками и прочитал доки, дальше нашел бы места использования этих API в RN и точки вывода этого хоз-ва в JS (если они есть).
Gena
А, и при этом, т.к. сам RN не абстрагирует http клиент в нативе, то все внешние либы скорей всего чего-то сами изобретают. Шарят ли они cookie хранилище с тем, что RN использует - неизвестно, тоже вопрос для выяснения.
Вадим
Alex
А потом попробуй перезагрузить симулятор и сделать новый билд
Все сделал по инструкции с официального сайта. На IOS перезагрузил симулятор, в XCode ребилд сделал и запустил через react-native run-ios - все работает. С андроидом такая же история. Магия и вопрос прямых рук:D Большое спасибо за помощь)
ㅤ
Nick
это чат про react native
Nick
@gblack9
Maxim
есть ли какой-то гайд по созданию библиотек с нативным кодом для react-native?
Maxim
Evgeniy
Maxim
это про создание
я уже это все создал, теперь мне нужно это добавить в другой проект
Evgeniy
Maxim
Maxim
я нашел пакеты, например create-react-native-module, в них есть смысл?
Evgeniy
да
если уже все написанно, по тем гайдам, то нет. на андроиде вообще ничего не надо делать, просто импортнуть в mainApplication, дописать в settings.gradle и build.gradle пакет, для ios надо podspec файл написать, его можно сделать по аналогии с любым другим модулем для rn
Вадим
Докладываю по поводу cookies (куки , кукисы)
Было принято решение изменять бэк...
Maxim
Evgeniy
Maxim
ArtsyomK
По кукисам! Зачем их вообще на клиенте трогать? Их устанавливает api сервер и читает он же, клиенту про них знать не обязательно вообще, они просто в него сохраняются, нигде из клиентского кода их трогать не нужно
Вадим
ArtsyomK
я на андроид не тестировал, но на ios у меня все работает таким образом
ArtsyomK
и на react-native-web тоже
ArtsyomK
сервер удаляет
ArtsyomK
это работа api сервера
ArtsyomK
а не клиента
ArtsyomK
клиент обращается к серверу, а сервер удаляет