Size: a a a

2019 September 28

RI

Ruslan Ibragimov in Kotlin JS
Потому что если в большом дереве сделать руту setState, то все дерево при таком подходе будет ререндериться, или не будет. Но тогда придется во все компоненты передавать по каналу, а это уже жесть какая-то
источник

RI

Ruslan Ibragimov in Kotlin JS
Alexander Nozik
Ну там на самом деле все равно реконсайл, поскольку пересчет вызывается скорее всего на каждое изменение стейта. Но в чем идейная проблема?
В том что с таким подходом реакт не нужен, берите бэкбон, джеквери или вью
источник

AN

Alexander Nozik in Kotlin JS
С этим не спорю. Но вопрос остается, чем канал унутре хуже, чем канал снаружи, который будет перерисовывать компонент
источник

AN

Alexander Nozik in Kotlin JS
Ruslan Ibragimov
В том что с таким подходом реакт не нужен, берите бэкбон, джеквери или вью
Так я бы с радостью взял jquery, если бы на нем либы были по-человечески написаны. Я же реакт не ради реакта беру
источник

RI

Ruslan Ibragimov in Kotlin JS
Alexander Nozik
Так я бы с радостью взял jquery, если бы на нем либы были по-человечески написаны. Я же реакт не ради реакта беру
Ну вот, а все потому что на джеквери в среднем в таком стиле и писали. А тут есть реакт, где UI = F(State), и вместо того чтобы простым и понятным способом оперировать со стейтом (если мы говорим про один компонент, если про целое приложение, то простой и понятный способ это redux) передавая аргументы в компонент (аргументы в функцию), прокидывается канал. В итоге непонятно зачем, пишется костыль, который при этом еще и сложнее выглядит
источник

AN

Alexander Nozik in Kotlin JS
Ruslan Ibragimov
Ну вот, а все потому что на джеквери в среднем в таком стиле и писали. А тут есть реакт, где UI = F(State), и вместо того чтобы простым и понятным способом оперировать со стейтом (если мы говорим про один компонент, если про целое приложение, то простой и понятный способ это redux) передавая аргументы в компонент (аргументы в функцию), прокидывается канал. В итоге непонятно зачем, пишется костыль, который при этом еще и сложнее выглядит
Ну канал выглядит гораздо проще, чем redux. Кстати, я понял, почему идея с перерисовкой не совсем то. Предположим, что у меня разлапистый стейт и мне надо поменять только одно поле. Если я пересоздаю через параметры, то каждый раз у меня стейт внутренний будет полностью генерирвоаться заново а не просто меняться. Собтсвенно то, о чем я говорю не нарушает идею UI = F(State), нарушается идея UI=F(G(Params)).
источник

AN

Alexander Nozik in Kotlin JS
Мой вопрос остается. Есть ли проблема в том, что меняется стейтс мимо параметров?
источник

RI

Ruslan Ibragimov in Kotlin JS
> Ну канал выглядит гораздо проще, чем redux.

Канал нужно сравнивать с передачей аргумента в комнент, не с редаксом. С редаксом канал не сравнить, потому что редакс хранит состояние целого приложения, а не отвечает за изменение стейта одного компонента.

> Если я пересоздаю через параметры, то каждый раз у меня стейт внутренний будет полностью генерирвоаться заново а не просто меняться.

И это абсолютно не важно, т.к. у тебя реконсайл будет в обеих случаях. Цена одного компонента (объекта) ничтожна. Не факт что вся корутинная машинерия в JS тебе сейчас обходится дешевле. Делаю ставку что наоборот, что работает медленнее/тратит больше памяти
источник

RI

Ruslan Ibragimov in Kotlin JS
Alexander Nozik
Мой вопрос остается. Есть ли проблема в том, что меняется стейтс мимо параметров?
Есть, например если у тебя будет компонент в компоненте. Создание каналов, управление жизненным циклом
источник

AN

Alexander Nozik in Kotlin JS
Так если я компонент создаю один раз, а потом просто внутрь сообщения передаю.
источник

AN

Alexander Nozik in Kotlin JS
У меня там может быть какой-то сложный компонент. Я конечно не буду все это разворачивать ради кнопочки
источник

RI

Ruslan Ibragimov in Kotlin JS
Alexander Nozik
Так если я компонент создаю один раз, а потом просто внутрь сообщения передаю.
А если у тебя чилды есть, в них уже все-все через пропсы передавать будешь?
источник

Н

Напыщенное Эго in Kotlin JS
Alexander Nozik
Мой вопрос остается. Есть ли проблема в том, что меняется стейтс мимо параметров?
Вас смущает что вы сначала поменяли стейт, а потом вызвали render?
Это нормально. Типичный observable. Все это одни и теже яйца.. observable, eventemitter. А redux - это паттерн.. там нет ничего кроме рекомендаций как писать свой собственный eventemitter.
источник

AN

Alexander Nozik in Kotlin JS
Зачем, как доке написано выкину стейт в корневой элементи и буду его мучить
источник

RI

Ruslan Ibragimov in Kotlin JS
Alexander Nozik
Зачем, как доке написано выкину стейт в корневой элементи и буду его мучить
Так а как чилды до стейта будут доступаться?
источник

AN

Alexander Nozik in Kotlin JS
Напыщенное Эго
Вас смущает что вы сначала поменяли стейт, а потом вызвали render?
Это нормально. Типичный observable. Все это одни и теже яйца.. observable, eventemitter. А redux - это паттерн.. там нет ничего кроме рекомендаций как писать свой собственный eventemitter.
Вот мне тоже так показалось. Там не обсервер, там subscription на самом деле. Я просто не понял, почему у профессионалов это так напрягает
источник

AN

Alexander Nozik in Kotlin JS
Ruslan Ibragimov
Так а как чилды до стейта будут доступаться?
Ну как обычно в реакте, родителей спрашивать
источник

RI

Ruslan Ibragimov in Kotlin JS
Alexander Nozik
Ну как обычно в реакте, родителей спрашивать
ЧТО?
источник

AN

Alexander Nozik in Kotlin JS
Ну а как стейт обычно прокидывается?
источник

RI

Ruslan Ibragimov in Kotlin JS
В реакте как и в compose родители прокидывают чилдам пропсы
источник