@react_js

Страница 4102 из 5115
Anton
06.06.2018
06:41:21
Нифига себе! Контекст доступен во ВСЕХ потомках родителя? Круто блин.
А еще можно прочитать значение из контекста родителя, изменить, и записать его обратно, изменив для своих потомков По сути - mobx-state-tree

Demuz
06.06.2018
06:41:59
И вот это еще http://blog.csssr.ru/2018/04/06/new-react-context
Понял понял. Даже не нужно тысячу раз проброс делать с компонента в компонент, а просто сделать контекс. Класно, спасибо. Ну правда, жаль у меня пока нет такой необходимости, так как компоненты и так смотрят в стор и могут переназначать переменные и прочее оттуда.

Anton
06.06.2018
06:42:14
и размазанненько
Это не всегда проблема. Лишние стейты глаза не мозолят

Google
Сергей
06.06.2018
06:42:33
Это не всегда проблема. Лишние стейты глаза не мозолят
зато очевидность кода становится близкой к нулю

количество consumer’ов контекста повышает количество компонентов, а соответственно время на рендер

Anton
06.06.2018
06:43:19
Контрол клик на контексте - перешел в область определения, альт+ф7 на провайдере - увидел где он задается

Сергей
06.06.2018
06:44:09
лол

Demuz
06.06.2018
06:44:09
Контрол клик на контексте - перешел в область определения, альт+ф7 на провайдере - увидел где он задается
А один провайдер и подключаемый стор в мобиксе не заменяет дефолтный контекст реакта?

Anton
06.06.2018
06:44:26
количество consumer’ов контекста повышает количество компонентов, а соответственно время на рендер
ты не поверишь, но провейдер и консумер - это НЕ компоненты. Потому энзим на них и падает

Сергей
06.06.2018
06:44:32
Контрол клик на контексте - перешел в область определения, альт+ф7 на провайдере - увидел где он задается
а потом количество функций/пропс из нескольких контекстов пробрасывается на глубину

ты не поверишь, но провейдер и консумер - это НЕ компоненты. Потому энзим на них и падает
в девтулзы посмотри они также имеют mount/unmount и прочие методы

Сергей
06.06.2018
06:45:39
Я в код реакта смотрю
в реакте там кода почти нет

и это вообще ничего не обосновывает

ибо механизмы контекста вообще за пределами реакта

Anton
06.06.2018
06:46:21
typeof Compoenent === function typeof Consumer === object Их совершенно паралельные куски кода рендерят, как и порталы

Google
Сергей
06.06.2018
06:47:07
и

Anton
06.06.2018
06:47:54
И не надо сильно вложености боятся Лишние замыкания - да, могут быть не приятными, но все познается в сравнении

Сергей
06.06.2018
06:48:16
не надо таких советов давать, плиз

Anton
06.06.2018
06:49:18
Кстати, насчет вредных советов - https://medium.com/@charpeni/arrow-functions-in-class-properties-might-not-be-as-great-as-we-think-3b3551c440b1 Графики там самый сок

Настолько важная, что не рекомендовалась к использованию кем попало вплоть до 2017
Другой не было, они знали что прийдется менять, и поменяли таки. Теперь многие имеют проблемы с переходом со старого контекста. И есть еще пара rfc по частичному возврату старого контекста, и вроде частично его оставят

Demuz
06.06.2018
06:50:31
Покажешь пример ошибки?
Что-то не выходит )))) Удалил конструктор и все так же работает )))) И пропсы нормально принимает.

Сергей
06.06.2018
06:50:37
ни о чем

учитывая, что нам приходится в рендере либо стрелки писать, либо .bind

Anton
06.06.2018
06:51:13
Сергей
06.06.2018
06:51:25
вообще мимо

Artyom
06.06.2018
06:51:38
А один провайдер и подключаемый стор в мобиксе не заменяет дефолтный контекст реакта?
Любой стейт-менеджер - и мобикс тоже - это апишный сахар над "нативным" контекстом реакта

Anton
06.06.2018
06:51:47
Ну для 99,9 случаев 28 тысяч операция в секунду это выше круши

Сергей
06.06.2018
06:51:51
посчитай перфоманс, если уж на то пошло: - создать одну стрелку на компонент - создавать стрелку на каждый рендер - биндить функцию на каждый рендер

Demuz
06.06.2018
06:52:11
Любой стейт-менеджер - и мобикс тоже - это апишный сахар над "нативным" контекстом реакта
Ну, иногда столько работы, что нет времени заморачиваться. Пусть будет сахар.

Artyom
06.06.2018
06:52:15
Ого. Это как так?
Потому что см. главу Проблемы старого контекста

Alexander
06.06.2018
06:52:23
Ого. Это как так?
Ну до 16.3 контекст был экспериментальной фичей и его не рекомендовали вообще к применению, если ты не разбираешься в ней

Google
Max
06.06.2018
06:52:50
старый контекст имеет проблемы

Anton
06.06.2018
06:53:11
посчитай перфоманс, если уж на то пошло: - создать одну стрелку на компонент - создавать стрелку на каждый рендер - биндить функцию на каждый рендер
Надо написать бабель плагин, чтобы стрелочные функции переделывал в обычные и биндил в конструкторе

Max
06.06.2018
06:53:26
напримерм контекст не обновляется если ты в родительском компоненте shouldDcomponentUpdate = false сделаешь

Roman
06.06.2018
06:53:46
бабель тебе к конструктор пишет arrow функции и биндит их

Anton
06.06.2018
06:54:00
А какие проблемы, старый же еще не деприкейтед?
Ну приходит принципал, спрашивает у кого еще старый контекст осталось, а то новый уже как неделю в проде, а вы все на старом....

Artyom
06.06.2018
06:54:38
Roman
06.06.2018
06:54:49
кароче я про то, что если ты пишешь handle = () => то в сборке будет constructor () { this.handle = this.handle.bind(this)}

Anton
06.06.2018
06:54:56
Object.defineProperty там
Он их в конструктор просто переносит, а потом возможно переделывает arrow в обычные, заменя все this на _this%N Это не то, они остаются динамическими

Max
06.06.2018
06:55:27
до нового еще руки не дошли

Сергей
06.06.2018
06:55:29
Max
06.06.2018
06:55:33
но вроде обещали это поправить

Alexander
06.06.2018
06:55:38
чито чито
Больше бабель плагинов богу Бабель плагинов

Google
Demuz
06.06.2018
06:55:58
Потому что см. главу Проблемы старого контекста
В старой версии если на определённый контекст подписан и родитель — componentA, и его непосредственный потомок — componentB, то при обновлении контекста нужно произвести обновление их обоих. Из-за этого componentA обновится 1 раз, а componentB два раза: сначала из-за обновления родителя componentA, а потом из-за обновления самого контекста (т.к. компонент на него подписан). Вы про эту проблему говорили?

Roman
06.06.2018
06:56:04
хуево, когда не знаешь экосистему

Anton
06.06.2018
06:56:06
Тело функции будет в прототипе, остается только прибить контекс исполнения

Artyom
06.06.2018
06:56:12
до нового еще руки не дошли
кто-то писал тут о этой проблеме

Max
06.06.2018
06:56:30
ну я на выхах если будет время свой стейт-менеджер попробую на новый контекст переписать

Сергей
06.06.2018
06:56:42
Max
06.06.2018
06:56:45
но я в вообще забил хуй и шину событий свою запилил

Admin
ERROR: S client not available

Demuz
06.06.2018
06:57:14
да
Так юзая мобикс у меня нет такой проблемы. В текущей ситуации все обновятся всего 1 раз.

Max
06.06.2018
06:57:36
нука нука?
да чо нуканука взял signals.js и заебись

Anton
06.06.2018
06:57:44
хуево, когда не знаешь экосистему
Хуево когда не знаешь как бабель работает. “Стрелочная функция” в классе это класс проперти, он их просто КОПИРУЕТ из body в констуртор, А потом совершенно другой плагин может стрелочную функцию превратить в обычную Надо же class property на основе стрелочной функции переделать в class method, и добавить bind код в конструктор. Совершенно другая операция

Artyom
06.06.2018
06:58:44
Так юзая мобикс у меня нет такой проблемы. В текущей ситуации все обновятся всего 1 раз.
Да, все верно."правильный" обход подписчиков мобикс делает сам. Это описано самим автором, ссылки так же есть в статье чуть ниже.

Так юзая мобикс у меня нет такой проблемы. В текущей ситуации все обновятся всего 1 раз.
Если что, никто не принуждает использовать новый (или старый) контекст напрямую. Но знать о нем обязательно нужно

Valeryi
06.06.2018
07:02:02
Всем привет, приходят данные в компонент, через connect, и компонент анмаунтится при получении новых данных, можно ли этого избежать?

Ruslan
06.06.2018
07:02:07
Сергей
06.06.2018
07:03:27
так ребятки

Google
Сергей
06.06.2018
07:03:34
это ложь





Roman
06.06.2018
07:04:03
вас на работе заставляют в яндекс браузере сидеть?

Сергей
06.06.2018
07:04:25
вас на работе заставляют в яндекс браузере сидеть?
просто не смешиваю рабочий акк и домашний надо домашний открыть открываю хром ну и тестить продукт под ябро проще

Roman
06.06.2018
07:04:48
из тестов не особо заметно будет

Сергей
06.06.2018
07:05:05
под что?
я браузер — яндекс браузер

Max
06.06.2018
07:05:15
м

Anton
06.06.2018
07:05:22
И ссылку на jsperf

Сергей
06.06.2018
07:05:23
из тестов не особо заметно будет
лол, а там картиночка показывает катастрофическую разницу

И ссылку на jsperf
https://jsperf.com/class-arrow-functions/1

https://jsperf.com/arrow-vs-proto-bind-in-class/1

Valeryi
06.06.2018
07:05:46
help

Всем привет, приходят данные в компонент, через connect, и компонент анмаунтится при получении новых данных, можно ли этого избежать?

Roman
06.06.2018
07:05:59
лол, а там картиночка показывает катастрофическую разницу
у нас по первому каналу тоже показывают красивые инфографики

Сергей
06.06.2018
07:06:19
у нас по первому каналу тоже показывают красивые инфографики
ну вот как бы я сразу и опроверг их что разница не чувствительна для 99% случаев

Max
06.06.2018
07:06:21
смотри выше что у тебя может анмаунтить

лоадинг какой



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