Альтернатива одноместному спа

У нас есть огромное корпоративное приложение, написанное на angularjs.

Теперь нам нужно перейти на angular, поэтому мы исключили вариант гибридного подхода, который angular предлагает использовать «ngUpgrade».

Итак, теперь мы создаем новое приложение в angular, что означает, что у нас есть 2 приложения: «angularjs (старый)» и угловой (новый).

Таким образом, для переключения между этими двумя приложениями можно использовать angular-spa без обновления.

Я пытался найти другую структуру, в которой навигация между двумя приложениями происходит без обновления (без обновления всей страницы путем перехода к новому html).


person sandeep    schedule 06.06.2019    source источник
comment
Если вы хотите это сделать, вы должны добавить оба своих приложения в один и тот же файл index.html, иначе ваша страница будет перезагружена из-за изменения URL-адреса.   -  person    schedule 06.06.2019
comment
будут ли конфликты фреймворков между фреймворками (angular и angularjs). Есть ли у нас какие-либо рамки, которые помогают в этом?   -  person sandeep    schedule 06.06.2019
comment
Я так не думаю, обе платформы имеют свой собственный контекст и синтаксис, у вас должно быть хорошо. Единственные конфликты, которые могут возникнуть, - это если они оба манипулируют одними и теми же частями DOM (чего, очевидно, вам следует избегать).   -  person    schedule 06.06.2019


Ответы (2)


Возможное решение: используйте новое приложение Angular в качестве оболочки, а затем просто используйте iframe, чтобы показать, что приложение, которое вы хотите, зависит от контекста - старого или нового. Проблема, с которой вы можете столкнуться, связана с изменением iframe, но я думаю, вы можете использовать postMessage для связи между приложениями.

Немного сложнее: используйте Angular Elements для создания своего гибридного приложения. Я настоятельно рекомендую вам посмотреть Эрин рассказывает о том, как Google сделал переход с js на Angular.

person Eliran Eliassy    schedule 06.06.2019
comment
Спасибо за быстрый ответ. Angular Elements не поддерживаются в Edge и IE, если я не ошибаюсь - person sandeep; 06.06.2019

Недавно я пробовал архитектуру микроинтерфейса, описанную здесь: https://www.martinfowler.com/articles/micro-frontends.html

Каждое приложение находится в разных репозиториях кода, построено во время выполнения и довольно просто в реализации. Взглянем :)

person AdamKniec    schedule 16.02.2020