каждый день удивляюсь как реактеры придумывают себе проблемы, а потом героически их решают.
В том же angular из-за нормальной архитектуры к таким же нормальным стейт менеджером можно подключать плагин кеширования в пару строчек и больше ничего не изобретать.
Вот пример из ngxs:
чтобы при переходе с /tasts/ на tasks/1/ роутер не перерендеривал весь список задач, а просто открывал рядом панельку с детализацией? Базовое поведение безбожно сломано кривыми абстракциями.
Взял первую претензию из твоего комментария
Структура такая Lists Component -> Details Component Details Component - это дочерний роут Lists Component
В Details Component делаем список, а ниже <router-outlet></router-outlet> При смене роута список не перерисуется, а Details перерисуется.
Список не будет перерисововаться при наличии OnPush вообще никак.
Ну понятно. То есть нормальной типизации не было, и не стало после обновления. Тут действительно всё отлично. Подозреваю, что если в проекте везде типы any — то вообще никогда никаких проблем с обновлением TS не будет. Профит!
2 года назад получил проект с кучей легаси и даже jquery внутри angular, обновлял его с 8 до 12 версии постепенно, на каждое обновление не уходило больше 1 рабочего дня.
Проект был без строгого режима, не знаю что у вас за код в котором надо месяцами все переписывать при обновлении, но думаю тут не Angular вина.
Так же обновления ts не относятся конкретно к angular, это нужно делать на любом TS проекте.
Менюшку справа -> блютус или выключит или включит, что-бы подключиться надо заходить в настройки -> устройства -> добавить устройство, хотя неясно что мешает сделать как с подключением к wifi
Вы в примере с классами вписали конфиги, а с хуками нет, что-бы код был короче)
Классы реально кажутся лучше и проще, а вот когда у вас есть SomeComponent который может быть Draggable, Droppable, Transparentable и Чегоготамble, то вы городите жуткую пирамиду из НоС'ов:
В angular на эти все вещи создается по директиве, которая независима от класса и может работать с любым (или по желанию определенным) тегом/компонентом.
В таком случа если у нас есть компонент А которому нужно добавить draggable - нам не нужно менять компонент, вместо этого мы навешиваем директиву при использовании компонента.
В том же angular из-за нормальной архитектуры к таким же нормальным стейт менеджером можно подключать плагин кеширования в пару строчек и больше ничего не изобретать.
Вот пример из ngxs:
Бинго, теперь ваше состояние novels по умолчанию хранится в Кеше и не надо ничего дописывать или переписывать.
Как бы ДНР воевал с Украиной без России? Не было бы войны там, если бы Россия не лезла в чужую страну
Эта проблема решена в Angular.
Создаем компонент который не имеет своего тега, а добавляется в виде атрибута
а потом навешиваем его куда хотим, на кнопку или ссылку
Для стилей в angular есть :host который привязывается напрямую к компоненту, ему не важно какой тег у него тег
А что сейчас используется?
Тогда trackBy внутри ngfor)
Взял первую претензию из твоего комментария
Структура такая Lists Component -> Details Component
Details Component - это дочерний роут Lists Component
В Details Component делаем список, а ниже <router-outlet></router-outlet>
При смене роута список не перерисуется, а Details перерисуется.
Список не будет перерисововаться при наличии OnPush вообще никак.
Кто чем пользуется то и видит, наблюдаю обратное в своем окружении)
+
Кажется вы пример этого эффекта
Без понятия зачем вам залезать на туалет.
Для начала стоит осознать то, что еда нужна для питания организма, а не что-бы жрать когда скучно/грустно/хочется чего-то не знаю чего
Что-бы с туалета не вылазить?
Судя по ответу как раз не понятно.
2 года назад получил проект с кучей легаси и даже jquery внутри angular, обновлял его с 8 до 12 версии постепенно, на каждое обновление не уходило больше 1 рабочего дня.
Проект был без строгого режима, не знаю что у вас за код в котором надо месяцами все переписывать при обновлении, но думаю тут не Angular вина.
Так же обновления ts не относятся конкретно к angular, это нужно делать на любом TS проекте.
Да, все подтянет, там где несовместимости укажет об этом и предложит исправление.
скорость работы приложения
скорость разработки
сложность миграции между версиями
Миграция очень медленная и сложная, ведь там нужно:
1. Запустить ng update
Менюшку справа -> блютус или выключит или включит, что-бы подключиться надо заходить в настройки -> устройства -> добавить устройство, хотя неясно что мешает сделать как с подключением к wifi
Вы в примере с классами вписали конфиги, а с хуками нет, что-бы код был короче)
В angular на эти все вещи создается по директиве, которая независима от класса и может работать с любым (или по желанию определенным) тегом/компонентом.
В таком случа если у нас есть компонент А которому нужно добавить draggable - нам не нужно менять компонент, вместо этого мы навешиваем директиву при использовании компонента.
Директив при этом можно навесить сколько угодно.
Может просто в react не умеют в классы?
А зачем это? За 5 лет использования ts в angular не видел ничего подобного, что этот код делает?
Во втором можно делать как угодно, но все же сервис на каждый инстанс компонента нужен очень редко.