Size: a a a

2019 September 28

AN

Alexander Nozik in Kotlin JS
Напыщенное Эго
а сорри.. невнимательно прочитал описание проблемы. теперь кажется понял вопрос...
это конечно немного странно использовать реакт только ради компонента.. Обычно фрейм закладывают как базу для всего приложения..
Но что мешает получить ссылку на компонент и просто вызывать его методы?
Проблема в том, что сейчас все компоненты пишут под фреймворк. В частности прямо под реакт. Без обвяки под pure JS. Без React-DOM я вставить-то его не могу.
источник

Н

Напыщенное Эго in Kotlin JS
Alexander Nozik
Проблема в том, что сейчас все компоненты пишут под фреймворк. В частности прямо под реакт. Без обвяки под pure JS. Без React-DOM я вставить-то его не могу.
вы хотите заюзать реакт-компонент даже не подключая самого реакта?
источник

AN

Alexander Nozik in Kotlin JS
Напыщенное Эго
вы хотите заюзать реакт-компонент даже не подключая самого реакта?
Я о том и говорю, что не подключая реакта не получится. Подключаю реакт. Теперь хочу общаться с этим компонентом
источник

Н

Напыщенное Эго in Kotlin JS
Alexander Nozik
Я о том и говорю, что не подключая реакта не получится. Подключаю реакт. Теперь хочу общаться с этим компонентом
источник

RI

Ruslan Ibragimov in Kotlin JS
По сути тут говорится о том, что render возвращает объект компонента и его дергать можно.
источник

RI

Ruslan Ibragimov in Kotlin JS
По статье: все выкинуть и делать просто re render
источник

RI

Ruslan Ibragimov in Kotlin JS
Virtual DOM для того и сделан
источник

AN

Alexander Nozik in Kotlin JS
Ruslan Ibragimov
По сути тут говорится о том, что render возвращает объект компонента и его дергать можно.
Возвращается ReactComponent, у которого никаких ручек нет
источник

RI

Ruslan Ibragimov in Kotlin JS
Alexander Nozik
Возвращается ReactComponent, у которого никаких ручек нет
В котлин? Или тайпскрипте тоже?
источник

AN

Alexander Nozik in Kotlin JS
ReactElement. Про тайпскрипт не знаю
источник

RI

Ruslan Ibragimov in Kotlin JS
Alexander Nozik
ReactElement. Про тайпскрипт не знаю
Что будет если его залогировать? Я думаю это будет дом объект с полями/методами из компонента
источник

AN

Alexander Nozik in Kotlin JS
> ReactDOM.render() currently returns a reference to the root ReactComponent instance. However, using this return value is legacy and should be avoided because future versions of React may render components asynchronously in some cases. If you need a reference to the root ReactComponent instance, the preferred solution is to attach a callback ref to the root element.
источник

AN

Alexander Nozik in Kotlin JS
А дальше предлагается вот такое решение: https://reactjs.org/docs/refs-and-the-dom.html#creating-refs, которое идет прямиком через задницу посредством monkey patching
источник

RI

Ruslan Ibragimov in Kotlin JS
Окей, в любом случае чтобы передавать данные в компонент не нужно юзать каналы
источник

AN

Alexander Nozik in Kotlin JS
Ruslan Ibragimov
Окей, в любом случае чтобы передавать данные в компонент не нужно юзать каналы
А как?
источник

RI

Ruslan Ibragimov in Kotlin JS
Просто делать ему render с новыми данными
источник

AN

Alexander Nozik in Kotlin JS
Ruslan Ibragimov
Просто делать ему render с новыми данными
А нафига такая радость? В принципе, да реконсайл и все такое, но если мне надо поменять только мизерную часть, то мне что, каждый раз реконсайл по всему дереву гонять?
источник

AN

Alexander Nozik in Kotlin JS
В чем идея?
источник

RI

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

AN

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