Когда вы задаете новое значение в своем стейте, будь он в MobX или же в setState. Вы вызовом этой функции тригеррите обновление. То-есть вызываете обновление вручную.
Согласен что вэб компоненты это очень важное и нужное подспорье для нас, как вэб разработчиков. И фреймворки и компоненты имеют пересекающийся функционал. Но то что они прекрасно могут работать вместе это факт. Например фреймворк отвечает за создание и обновление DOM внутри компонента, а компоненты отвечают за общую структуру документа и композицию.
React кстати был не совсем совместим с вэб компонентами, также в нем дублируется логика жизненного цикла, и еще он тяжеловесен.
Некоторое время назад я начал разработку легковесной библиотеки для создания и обновления DOM. Фундаментально она схожа с React, но без этих недостатков. Так что предполагаю что она могла бы быть идеальным помошником для написания вэб компонентов https://github.com/fusorjs/dom
Во-первых, HTML это удобная текстовая репрезентация объектной модели документа. Во-вторых, я считаю что react-native и подобные ему гибридные подходы скоро уйдут. Так как они по сути являются попыткой пере-изобретения велосипеда истинно кроссплатформенной среды вэб броузера. Поводом их создания было недостаточное количество поддерживаемых фич и скорости работы броузера. С тех времен много воды утекло и теперь 90% нативных приложений может быть реализовано как PWA https://whatpwacando.today/
Мы всегда могли писать Javascript в HTML. В JSX же можно с помощью Javascript создавать и модифицировать DOM динамически. Чтобы не было месива, надо бизнес логику выносить из верстки.
Да, разумеется они имплементированы по разному. Я исходил из контекста этой статьи, что Хуки/Сигналы схожи в том, что это обертки для простейших операций, которые могут быть заменены на установку переменной let x = 0 и вызов функции () => x, как сделано в Fuser. А также они схожи в "хитрой" логике имплементации, которая будет влиять на производительность. Также схожи в том что смешивают два действия: установку стейта и обновление.
В SolidJS используются теже хуки, только теперь они называются Signal. Также соединена логика изменения стейта и обновления что не гуд (смотри single-responsibility principle). Fusor должен по производительности не уступать Svelte. И там где Svelte делает компиляцию не известно как, в Fuser это видно в коде. Потому как там Javascript переменные и функции.
Бегло пробежал по Stenciljs. Много страниц документации, много правил, декораторы, механизмы свойств и состояния. Во Fusor это просто Javascript переменные и функции, всё! Отсюда и одна страница с документацией. Вэб-компонет используется для жизненного цикла, дальше ваше дело, если хотите их использовать.
Когда вы задаете новое значение в своем стейте, будь он в MobX или же в setState. Вы вызовом этой функции тригеррите обновление. То-есть вызываете обновление вручную.
Согласен что вэб компоненты это очень важное и нужное подспорье для нас, как вэб разработчиков. И фреймворки и компоненты имеют пересекающийся функционал. Но то что они прекрасно могут работать вместе это факт. Например фреймворк отвечает за создание и обновление DOM внутри компонента, а компоненты отвечают за общую структуру документа и композицию.
React кстати был не совсем совместим с вэб компонентами, также в нем дублируется логика жизненного цикла, и еще он тяжеловесен.
Некоторое время назад я начал разработку легковесной библиотеки для создания и обновления DOM. Фундаментально она схожа с React, но без этих недостатков. Так что предполагаю что она могла бы быть идеальным помошником для написания вэб компонентов https://github.com/fusorjs/dom
Во-первых, HTML это удобная текстовая репрезентация объектной модели документа. Во-вторых, я считаю что react-native и подобные ему гибридные подходы скоро уйдут. Так как они по сути являются попыткой пере-изобретения велосипеда истинно кроссплатформенной среды вэб броузера. Поводом их создания было недостаточное количество поддерживаемых фич и скорости работы броузера. С тех времен много воды утекло и теперь 90% нативных приложений может быть реализовано как PWA https://whatpwacando.today/
Создавайте PWA приложение в следующий раз. Оно может 99% того же что и нативное. Устанавливаетя без стора и выглядит как нативное.
Можно на локалхосте сервер развернуть, у вас все-равно датчик где-то должен жить.
И плюсом получаете мультиплатформенность (андроид, виндовс, линукс, макось).
В Реакте вы также вручную обновляете компонент, JSX или "функциональная нотация" мало чем отличаются.
По моему, так гораздо проще и производительнее ;)
Мы всегда могли писать Javascript в HTML. В JSX же можно с помощью Javascript создавать и модифицировать DOM динамически. Чтобы не было месива, надо бизнес логику выносить из верстки.
В MobX надо оборачивать данные классом и делать его oservable. Это даже многословнее хуков.
Да, разумеется они имплементированы по разному. Я исходил из контекста этой статьи, что Хуки/Сигналы схожи в том, что это обертки для простейших операций, которые могут быть заменены на установку переменной
let x = 0
и вызов функции() => x
, как сделано в Fuser. А также они схожи в "хитрой" логике имплементации, которая будет влиять на производительность. Также схожи в том что смешивают два действия: установку стейта и обновление.В SolidJS используются теже хуки, только теперь они называются Signal. Также соединена логика изменения стейта и обновления что не гуд (смотри single-responsibility principle). Fusor должен по производительности не уступать Svelte. И там где Svelte делает компиляцию не известно как, в Fuser это видно в коде. Потому как там Javascript переменные и функции.
Бегло пробежал по Stenciljs. Много страниц документации, много правил, декораторы, механизмы свойств и состояния. Во Fusor это просто Javascript переменные и функции, всё! Отсюда и одна страница с документацией. Вэб-компонет используется для жизненного цикла, дальше ваше дело, если хотите их использовать.
Пока только теоритические обоснования, если поможете с бенчмарком, буду премного благодарен.