Согласен, но есть проблемы с iframe, например описанные в вашей статье :)
Как вариант можно изолироваться от глобальных стилей сайта с помощью Shadow DOM
Как раз фишка этого фреймворка в изоляции, он весь код преобразует в нативный JS, с-но конфликтов не может быть (глобальное пространство не затргивается) :)
Его "рантайм" весит ~3kb, так что дополнительной нагрузки почти не будет.
Зато не нужно тащить iframe и что-то придумывать. Так же повышается удобство разработки в компонентном подходе (есть поддержка TypeSript), а не прямая работа с DOM.
Как по мне для виджетов идеально подходит svelte. Он не имеет рантайма, поэтому не будет конфликтов версий, изоляция стилей из коробки и будет гораздо легче разрабатывать и поддерживать виджет, а не так:
Нет, при смене роута, будут запрошены и переданы по сети только props, необходимые для отрисовки серверного компонента на клиенте. Оба способа реализовывать не нужно (вообще может быть кейс что вы достаете данные напрямую из бд).
Ограничения есть и каждый компонент перевести не получится. К минусам также можно отнести то, что необходимо будет поднимать еще один сервер для обработки серверных компонентов, т.е. нельзя будет просто положить статику на какой-нибудь S3.
Что вы подразумеваете под «перерисовыватся»? Если это дорогая, в плане производительности, операция по отрисовке элементов в DOM, то ее не будет. Если это операция по сравнению элементов в VDOM, то данная операция очень быстрая, в большинстве случаев за нее беспокоиться не стоит. Способом оптимизации из первого примера данной статьи вам придется пользоваться очень редко, если вообще придется.
Я думаю вам стоит глубже разобраться в механизме рендеринга в реакте, например из этой статьи.
Про какую утечку памяти идет речь? Максимум чем грозит первый пример это лишним сравнением виртуального DOM, самой дорогой операции по перерисовке DOM не будет. Про ваш пример со снежинками, а как вы хотите без перерисовки менять положение элементов в окне бразуера?
Согласен, но есть проблемы с iframe, например описанные в вашей статье :)
Как вариант можно изолироваться от глобальных стилей сайта с помощью
Shadow DOMКак раз фишка этого фреймворка в изоляции, он весь код преобразует в нативный JS, с-но конфликтов не может быть (глобальное пространство не затргивается) :)
Его "рантайм" весит ~3kb, так что дополнительной нагрузки почти не будет.
Зато не нужно тащить iframe и что-то придумывать. Так же повышается удобство разработки в компонентном подходе (есть поддержка TypeSript), а не прямая работа с DOM.
Как по мне для виджетов идеально подходит svelte. Он не имеет рантайма, поэтому не будет конфликтов версий, изоляция стилей из коробки и будет гораздо легче разрабатывать и поддерживать виджет, а не так:
Ограничения есть и каждый компонент перевести не получится. К минусам также можно отнести то, что необходимо будет поднимать еще один сервер для обработки серверных компонентов, т.е. нельзя будет просто положить статику на какой-нибудь S3.
Я думаю вам стоит глубже разобраться в механизме рендеринга в реакте, например из этой статьи.
TSLint has been deprecated as of 2019