LINUX.ORG.RU

История изменений

Исправление byko3y, (текущая версия) :

чистые функции там не чистые как раз из-за хуков, которые являются внешними ссылками из контекста функции

Какими еще внешними ссылками? Хуки разве позволяют получить доступ к данным вне контекста функции, то есть, к чему-то помимо самих хуков (являющихся контекстом)?

это процесс который придумало то же абраможулье, чтобы было обо что биться без конца, перегенерирование деревьев, тем более больших, не нужно практически никогда, если тебе надо обновлять данные ты прибиндиваешь их прямо к ссылкам на объекты dom

А тут ты уже переизобретаешь Vue. Но мне кажется, что ты не осознаешь проблем такого подхода — как ты собрался узнавать, что тебе нужно обновлять, а что — нет? React принимает это решение именно на уровне виртуального DOM. Vue тоже применяет виртуальный DOM для принятия окончательного решения внутри компонента, а между компонентов решение об обновлении принимается на основании срабатывания хуков в модели.

А тот же Svelte v3 ссылки на компоненты в DOM уже не держит — доступа к состоянию из DOM там вообще нету, оно наглухо инкапсулировано.

Вот присвоил ты DOM элементу данные, потом изменил их — что дальше твое приложение будет делать? Какие DOM элементы после этого обновлять? В hello world-е, конечно, ты будешь обновлять один элемент, но в более сложных приложениях неизбежно возникают связи между соседними элементами, глобальные состояния — как ты будешь реагировать на изменения таких состояний? И, самое главное, как потом поддерживать этот код?

Исходная версия byko3y, :

чистые функции там не чистые как раз из-за хуков, которые являются внешними ссылками из контекста функции

Какими еще внешними ссылками? Хуки разве позволяют получить доступ к данным вне контекста функции, то есть, к чему-то помимо самих хуков (являющихся контекстом)?

это процесс который придумало то же абраможулье, чтобы было обо что биться без конца, перегенерирование деревьев, тем более больших, не нужно практически никогда, если тебе надо обновлять данные ты прибиндиваешь их прямо к ссылкам на объекты dom

А тут ты уже переизобретаешь Vue. Но мне кажется, что ты не осознаешь проблем такого подхода — как ты собрался узнавать, что тебе нужно обновлять, а что — нет? React принимает это решение именно на уровне виртуального DOM. Vue тоже применяет виртуальный DOM для принятия окончательного решения внутри компонента, а между компонентов решение об обновлении принимается на основании срабатывания хуков в модели.

А тот же Svelte v3 ссылки на компоненты в DOM уже не держит.

Вот присвоил ты DOM элементу данные, потом изменил их — что дальше твое приложение будет делать? Какие DOM элементы после этого обновлять? В hello world-е, конечно, ты будешь обновлять один элемент, но в более сложных приложениях неизбежно возникают связи между соседними элементами, глобальные состояния — как ты будешь реагировать на изменения таких состояний? И, самое главное, как потом поддерживать этот код?