
Mr
13.10.2017
16:30:04
reselect - комуто реально помог?

from
13.10.2017
16:30:49

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

from
13.10.2017
16:34:43
байндь в конструкторе

Gordey
13.10.2017
16:35:18
проблемы в том, что каждый рендер создается новая ф-ция, из-за которого дальше shouldCOmponentUpdate считает, что ему нужно перерендерить
https://daveceddia.com/avoid-bind-when-passing-props/
класс проперти заходит, когда не нужно прокидывать никакие параметры
когда нужно, либо создавать +1 компонент, либо ?
() => {} это тоже создание каждый раз новой на каждый рендер

Алексей
13.10.2017
16:37:34

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

Алексей
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
в общем все списки

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

from
13.10.2017
16:41:43

Алексей
13.10.2017
16:41:55

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

from
13.10.2017
16:42:58

Mr
13.10.2017
16:42:59

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

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

from
13.10.2017
16:48:59
решение не лучше и не хуже либы для байндинга

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

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

Artyom
13.10.2017
16:52:42

Gordey
13.10.2017
16:53:20

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

Алексей
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

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

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

Mike
13.10.2017
17:17:13

from
13.10.2017
17:17:29
drag 'n' drop
do not disturb