@react_js

Страница 2318 из 5115
Mr
13.10.2017
16:30:04
reselect - комуто реально помог?

from
13.10.2017
16:30:49
reselect - комуто реально помог?
говорят есть такие ¯\_(ツ)_/¯

Gordey
13.10.2017
16:31:56
посоны, а кто-то решал проблему биндинга ф-ции внутри jsx которая в итоге вызывает лишние рендеры

все выносят в компоненты или как-то еще? я говорю про такой кейс https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-bind.md#protips

Google
Сергей
13.10.2017
16:33:11
https://github.com/atomixinteractions/eslint-config-base/releases/tag/v4.2.0

Gordey
13.10.2017
16:33:52
это да, а когда нужно прокинуть параметр

в handle

Gordey
13.10.2017
16:35:18
проблемы в том, что каждый рендер создается новая ф-ция, из-за которого дальше shouldCOmponentUpdate считает, что ему нужно перерендерить

https://daveceddia.com/avoid-bind-when-passing-props/

класс проперти заходит, когда не нужно прокидывать никакие параметры

когда нужно, либо создавать +1 компонент, либо ?

() => {} это тоже создание каждый раз новой на каждый рендер

Алексей
13.10.2017
16:37:34
Может кто объяснить разницу работы проимисов с await и через then? 1) const response = await fetch(...) const { errors, data } = await response.json(); return { errors, data } 2) fetch(...).then(data=>).errors(...)
Для сложных асинхронных функций лучше делать async/await, иначе на промисах это будет выглядить не очень красиво и читаемо. А из этого вытекает то, что желательно стараться писать везде async/await для единообразия.

Gordey
13.10.2017
16:37:45
в конструкторе ок, но параметры не пробрасывает опять же

Google
Gordey
13.10.2017
16:38:13
я не верю что никто это не решал, проблема стара как мир, и уже год как должен валяться пакет в npm

но его почему то нет

Алексей
13.10.2017
16:38:35
какие ещё параметры?

Gordey
13.10.2017
16:38:52
биндинг ф-ция с прокидыванием параметров

вызывает лишний рендер

я сверху описывал, с парой ссылок

Алексей
13.10.2017
16:39:24
если биндинг в рендере, то да

но обычно пропсы же всех интересуют

Дмитрий
13.10.2017
16:40:10
reselect - комуто реально помог?
Если делать что-то сложнее todo листа, то актуально)

Алексей
13.10.2017
16:40:11
а они доступны как this.props

Max
13.10.2017
16:40:18
https://stanko.github.io/webpack-babel-react-revisited/

Gordey
13.10.2017
16:41:04
но обычно пропсы же всех интересуют
речь о кейсах, когда не пропсы нужны https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-bind.md#protips

в общем все списки

Anton
13.10.2017
16:41:26
Ликбез по типизации в языках программирования | Библиотека программиста https://proglib.io/p/literacy-project-type-checking/

Gordey
13.10.2017
16:42:44
я просто пытаюсь понять, либо это проблема слишком ничтожна чтобы ее решать, либо она уже кем-то решена, либо ее может нет

from
13.10.2017
16:42:58
Gordey
13.10.2017
16:43:11
тогда нужно какой-нибудь кэш
да я поэтому и решил тут спросить, потому что уже написана коллегой тулза для идемпотентого бинда

Google
Алексей
13.10.2017
16:43:25
вот не знаю таких к сожалению

Gordey
13.10.2017
16:43:25
но чет мне оно не нра

from
13.10.2017
16:44:47
Gordey не вижу смысла в либе если речь о списках — да, создавать list-item компонент в sCU надо не проверять коллбеки

Gordey
13.10.2017
16:45:17
from
13.10.2017
16:45:34
нет, все на pure
очень зря!

Gordey
13.10.2017
16:46:19
Gordey не вижу смысла в либе если речь о списках — да, создавать list-item компонент в sCU надо не проверять коллбеки
да вот не хотят коллеги на каждый список иметь еще один лишний компонент, когда можно написать свою версию бинда

https://github.com/azu/idempotent-bind/blob/master/src/idempotent-bind.js примерно о нем речь

from
13.10.2017
16:48:59
да вот не хотят коллеги на каждый список иметь еще один лишний компонент, когда можно написать свою версию бинда
не вижу вообще проблемы и на чём с экономить хочется если очень не хочется компонент создавать, можно data-атрибут вешать и в хэндлере считывать :)

решение не лучше и не хуже либы для байндинга

Алексей
13.10.2017
16:50:29
И кстати не факт, что с этим идемпотентным байдингом будет быстрее.

Алексей
13.10.2017
16:51:09
может он сам тормозит не по детски

а в каждом элементе списка парочка элементов всего

Artyom
13.10.2017
16:52:42
проблемы в том, что каждый рендер создается новая ф-ция, из-за которого дальше shouldCOmponentUpdate считает, что ему нужно перерендерить
А я создаю отдельные компонента на каждый такой элемент. Внутри него handle, который вызывается и из пропсов берет и отправляет в "onChange" что нужно

Artyom
13.10.2017
16:53:20
Биндить (ну стрелки) и замыкать ничего не нужно так

Ну сделай ты этот компонент не в отдельном файле, а рядом положи

Gordey
13.10.2017
16:55:00
И кстати не факт, что с этим идемпотентным байдингом будет быстрее.
можно позамерять, но не планировалось на все это время тратить

from
13.10.2017
16:55:14
это решение но коллеги не хотят лишнего кода
называйте просто это не "лишним кодом", а нормальным разделением

Google
Алексей
13.10.2017
16:55:35
тогда пишите как обычно

и не заморачивайтесь

потому что сомнительно, что у вас в списке прям огромные компоненты

from
13.10.2017
16:56:58
пусть пишут {() => this.doStuff()}, вдруг тормозов не будет вообще)

ну не "сомнительно" конечно, кейсы разные бывают

Алексей
13.10.2017
16:57:49
а если реально большие, то sCU сделайте с игнором функций при сравнениях

Gordey
13.10.2017
16:58:04
пусть пишут {() => this.doStuff()}, вдруг тормозов не будет вообще)
нет кстати на вскидку каких-то замеров по всем этим вариантам?

Алексей
13.10.2017
16:58:09
наверняка будет быстрее чем идемпотентный биндинг

from
13.10.2017
16:58:24
нет кстати на вскидку каких-то замеров по всем этим вариантам?
да увы че-то нет, никто не хочет делать)) я всё хотел взяться и тоже пока руки не дошли

Admin
ERROR: S client not available

Artyom
13.10.2017
16:58:26
Смотрите ка, перевод! https://habrahabr.ru/company/ruvds/blog/340034/

from
13.10.2017
16:59:11
нет кстати на вскидку каких-то замеров по всем этим вариантам?
но вообще создание функций в каждом рендере по идее должно быть вообще незаметным вот если где-то оправданный sCU, то уже надо сделать, чтобы коллбек не сравнивался

Artyom
13.10.2017
16:59:24
Какие замеры, у всех код разный.... Это надо реальное приложение брать и переписывать, замеряя до и после

from
13.10.2017
17:00:04
Artyom
13.10.2017
17:00:26
Я не причем ?

Алексей
13.10.2017
17:00:36
from
13.10.2017
17:01:25
Поддерживаю. "Что русскому хорошо, то немцу смерть"
есть такое, но по сути принципиально кейс один — компонент, который часто ререндерится :)

Artyom
13.10.2017
17:02:21
Про тесты

https://www.youtube.com/watch?v=HPFARivHJRY

Google
Artyom
13.10.2017
17:02:24
Вот и все

Gordey
13.10.2017
17:02:34
Замерять это отлично, только чертов реакт не вчера зарелизи, и часть проблем по латиницами они решают сами, другое советуют в best practice

Либо опять же проблема слишком ничтожна

from
13.10.2017
17:03:18
Gordey а ты по-моему так и не сказал, огромные списки имеют место быть?)

или особо частые ререндеры

Artyom
13.10.2017
17:05:42
Я как-то писал плавный dnd... - это вообще сложная задача. Тротлил рендер больше 60 раз в секунду. И там ты понимаешь, что проблема явно не в правильных и не правильных биндингах, а в медленном доме и реакте (на таких скоростях)

Ну это у меня такой опыт

Gordey
13.10.2017
17:05:59
Навскидку не больше 50 элементов, но надо ещё раз пройти по всем

Artyom
13.10.2017
17:06:16
Сейчас реакт выпустил файбер. Можно париться сильно меньше

Я рендерил 60 раз в секунду, меняя кучку пропсов и делая кучу вычислений. Тормозить заметно начинало с 5 - 10 элементов на средней машине. Но это ~400 ререндеров в секунду, на каждый из которых математики на пару строк

Вообще это все, наверное, можно проще было как-то сделать.... Но я не так сильно шарю)

from
13.10.2017
17:10:15
Я как-то писал плавный dnd... - это вообще сложная задача. Тротлил рендер больше 60 раз в секунду. И там ты понимаешь, что проблема явно не в правильных и не правильных биндингах, а в медленном доме и реакте (на таких скоростях)
если речь о том, что таскаемый компонент ререндерится на каждый фрейм и внутри тяжелый дифф, но просто напросто это тот самый кейс, когда sCU выручает больше всего

Artyom
13.10.2017
17:10:47
Так а как я троттлил по вашему

Проблема в том, что таскаемый компонент влиял на остальные

Вот эти ребята хорошо написал https://github.com/atlassian/react-beautiful-dnd

Но все равно, если быстро подвигать элементы и посмотреть на загрузку цпу, понимаешь что в вебе что-то не так с dnd

Gordey
13.10.2017
17:14:03
Не, у меня не про днд, речь о простых галереях, табах, булетах

Кароч библиотека компонент

from
13.10.2017
17:16:59
Так а как я троттлил по вашему
троттлить и отменять дифф — вообще разное

from
13.10.2017
17:17:29
drag 'n' drop

do not disturb

Страница 2318 из 5115