tgoop.com/super_oleg_dev/185
Last Update:
Отвлечемся поговорить про перформанс.
Наверное каждый эксперт в отладке и ускорении React приложений прошел непростой путь оптимизации на проде многоступенчатых форм или сложных таблиц, и знает все способы как избежать лишних ререндеров (которые не проблема сами по себе, но проблема в масштабе).
И каждый эксперт скорее всего не хотел бы этого знать и об этом думать.
Я согласен, что механизм обновления в React по умолчанию заставляет нас делать больше работы и предварительных оптимизаций (а дефолты это очень важно), либо не делать и потом все-таки становиться экспертами по реакт перформансу.
Это не означает, что в других фреймворках ничего не нужно оптимизировать, проблемы зачастую в пользовательском коде. Но по умолчанию - да, тормоза в React приложении поймать легче. При этом, мы практически всегда знаем что с этим делать.
Можно рассматривать эту проблему как сравнение Virtual DOM против реактивности и сигналов.
Пару ссылок про проблемы Virtual DOM:
- https://svelte.dev/blog/virtual-dom-is-pure-overhead
- https://vuejs.org/guide/extras/rendering-mechanism#compiler-informed-virtual-dom
Но не будем забывать про плюсы, то что уже обсуждали в предыдущем посте. Благодаря Virtual DOM и Fiber архитектуре, в реакте реализовыван прерываемый рендеринг, который открывает пачку крутых UX паттернов (suspense, транзишены и так далее).
Отличный обзор concurrent фич от Ивана Акулова - https://3perf.com/talks/react-concurrency/
Если говорить про другие фреймворки, интересные мысли можно почитать по ключевым словам типа Suspense на гитхабе в соответствующих проектах, например:
- https://github.com/sveltejs/svelte/issues/1736
- https://github.com/sveltejs/svelte/issues/3203#issuecomment-797346259
И мысли разные, в том числе от авторов фреймворков - что-то реализовать можно, что-то сложно, что-то не нужно.
Как и везде, серебряной пули нет, а плохие и медленные приложения писать с использованием сигналов также легко.
Также одна из важных вещей в Реакт - консистентность состояния.
Итого:
- по умолчанию в React легко написать медленный код
- это решаемая проблема, но бойлерплейт/надо думать
- текущая архитектура с Virtual DOM имеет и преимущества над другими решениями (компилируемыми / реактивными)
Добавлю еще коротко про React Forget.
Концептуально все просто - поможет оставить исходный код чистым, а продакшн код производительным.
Считаю это крутым экспериментальным проектом, надеюсь на его успех.
И это точно не менее предсказуемый инструмент чем любой compile-time фреймворк (такие мнения тоже встречал).
BY SuperOleg dev notes

Share with your friend now:
tgoop.com/super_oleg_dev/185