Size: a a a

Kotlin Community

2020 November 05

AN

Alexander Nozik in Kotlin Community
Denys
А что там не так со стейтом в реакте? Вы про Redux?
Нет, про обычный реакт. Редукс сверху навешивается. Если не брать мои грязные (во всех смыслах) хаки с корутинами, то в реакте для того, чтобы передать изменение состояния из одного куска сцен графа в другой, надо прокинуть его на самый верх и спустить вниз, перерисовывая все по дороге. Компоузовские же MutableState идейно гораздо ближе к FX Properties. Кстати, их вероятно можно подружить.
источник

D

Denys in Kotlin Community
Alexander Nozik
Нет, про обычный реакт. Редукс сверху навешивается. Если не брать мои грязные (во всех смыслах) хаки с корутинами, то в реакте для того, чтобы передать изменение состояния из одного куска сцен графа в другой, надо прокинуть его на самый верх и спустить вниз, перерисовывая все по дороге. Компоузовские же MutableState идейно гораздо ближе к FX Properties. Кстати, их вероятно можно подружить.
Я, вероятно, не столько много на реакте писал, но пока особой разницы не вижу - почти те же хуки, но с другими именами.
источник

AN

Alexander Nozik in Kotlin Community
Denys
Я, вероятно, не столько много на реакте писал, но пока особой разницы не вижу - почти те же хуки, но с другими именами.
Принципиальная разница в замечательном делегате mutableStateOf, который может жить совершенно отдельно от компонента. Ну и с хуками разница существенная, В реакте их можно вставлять только в определенном порядке и в определенных местах
источник

AN

Alexander Nozik in Kotlin Community
Модифайеры бесят. Возможно не привык еще. Пока не понял, почему так сделали
источник

D

Denys in Kotlin Community
Alexander Nozik
Принципиальная разница в замечательном делегате mutableStateOf, который может жить совершенно отдельно от компонента. Ну и с хуками разница существенная, В реакте их можно вставлять только в определенном порядке и в определенных местах
А в js аналог mutableStateOf() нельзя наколхозить? Насколько я понимаю, мемоизация примерно похоже работает.
источник

AN

Alexander Nozik in Kotlin Community
Denys
А в js аналог mutableStateOf() нельзя наколхозить? Насколько я понимаю, мемоизация примерно похоже работает.
Без хаков с корутинами, нет. Там весь стейт должен быть в скоупе компонента потому что так устроено реактовое развертование UI-декларации
источник

D

Denys in Kotlin Community
Alexander Nozik
Модифайеры бесят. Возможно не привык еще. Пока не понял, почему так сделали
А мне, наоборот, очень нравится - структура описана вложеными вызовами, а стилистика - в модификаторах.
Flutter в какой-то neo-LISP превращается со своими
Center {
   This {
       Red {
           Component()
       }
   }
}
источник

AN

Alexander Nozik in Kotlin Community
Грубо говоря, для того, чтобы сделать внешний стейт, надо сделать для него внутренний стейта сбайндить внутренний и внешний. В случае компоуза что-то такое и делается, но под капотом
источник

AN

Alexander Nozik in Kotlin Community
Denys
А мне, наоборот, очень нравится - структура описана вложеными вызовами, а стилистика - в модификаторах.
Flutter в какой-то neo-LISP превращается со своими
Center {
   This {
       Red {
           Component()
       }
   }
}
Ну я с торнадой сравниваю
источник

D

Denys in Kotlin Community
Alexander Nozik
Ну я с торнадой сравниваю
Мне в торнаде не нравится то, что из нее сильно JavaFX с реактивщиной проглядывает. :)
источник

D

Denys in Kotlin Community
Со своей реактивщиной
источник

AN

Alexander Nozik in Kotlin Community
Denys
Мне в торнаде не нравится то, что из нее сильно JavaFX с реактивщиной проглядывает. :)
Так там все изящно. Народ ругается на наследование. Но посмотрите щепочки вызова в компоузе
источник

AN

Alexander Nozik in Kotlin Community
Denys
А мне, наоборот, очень нравится - структура описана вложеными вызовами, а стилистика - в модификаторах.
Flutter в какой-то neo-LISP превращается со своими
Center {
   This {
       Red {
           Component()
       }
   }
}
И я пока не понял, почему там применение, а не скоуп, в котором можно функции вызывать.
источник

D

Denys in Kotlin Community
Alexander Nozik
И я пока не понял, почему там применение, а не скоуп, в котором можно функции вызывать.
Это интересный вопрос. Но на него, скорее всего, смогут лишь в слаке ответить.
источник
2020 November 06

SR

Sergey Rostov in Kotlin Community
Alexander Nozik
И я пока не понял, почему там применение, а не скоуп, в котором можно функции вызывать.
Модификатор с композабл лямбдой тоже есть. А сделали так для того чтобы унифицировать передачу и прокидывание параметров между композабл функциями (width, height, padding и т.д.).
источник

SR

Sergey Rostov in Kotlin Community
Sergey Rostov
Модификатор с композабл лямбдой тоже есть. А сделали так для того чтобы унифицировать передачу и прокидывание параметров между композабл функциями (width, height, padding и т.д.).
Прикольно то, что через модификаторы можно делать кастомный лейаут, рисование и прочее. Так можно написать свою утилиту в одном месте, а потом использовать для всех компонентов.
источник

SR

Sergey Rostov in Kotlin Community
Sergey Rostov
Прикольно то, что через модификаторы можно делать кастомный лейаут, рисование и прочее. Так можно написать свою утилиту в одном месте, а потом использовать для всех компонентов.
Если бы это были компоненты - то было бы сложно прокалывать параметры из одного в другой.
источник

AN

Alexander Nozik in Kotlin Community
Sergey Rostov
Если бы это были компоненты - то было бы сложно прокалывать параметры из одного в другой.
Ну сама идея динамических параметров мне понятна. Сам так делаю в plotly/visionforge. Вопрос в синтаксисе.
источник

АЕ

Алексей Ершов... in Kotlin Community
Vitaly Peryatin
Нужно отправить на север даннные с полем value, в котором может быть как тип String, так и List<String>. Подскажите как можно сериализовать такой класс с помощью Kotlinx Serialization?
почитайте в доке про array unwrapping, там специально для этого случая пример есть.
источник

VP

Vitaly Peryatin in Kotlin Community
Алексей Ершов
почитайте в доке про array unwrapping, там специально для этого случая пример есть.
Можно ссылочку? Этот кейс конкретно для Kotlinx Serialization?
источник