Использование приложения Angular6 внутри приложения VueJs

У нас есть приложение Angular (версия 6.1.5), которое делает HTTP-запрос к Restfull API.

Мы использовали модульный подход в приложении Angular. Существуют конфигурации маршрутизации на уровне приложения, и каждый модуль имеет свою собственную конфигурацию маршрутизации.

Эта настройка отлично работает и работает без каких-либо проблем.

Теперь, согласно нашему новому требованию, нам нужно использовать это приложение Angular с приложением VueJS.

После нашего первоначального исследования мы использовали Angular Elements и создали угловую сборку. Мы использовали эту сборку (содержащую файл JS и CSS) с VueJS, мы думали, что она работает нормально, пока мы не нажали обновление в приложении VueJS.

Как только мы нажимаем «Обновить», маршруты приложений Angular не работают, и мы видим только пустой экран.

Итак, что мы хотели бы знать, так это то, является ли наш подход к использованию углового элемента правильным. Или есть лучшие подходы к использованию углового приложения в приложении VueJS.

Спасибо за вашу помощь.

Трудно сказать, потому что vue и angular — это совершенно два разных фреймворка. В большинстве случаев вы выбираете одно или другое, а не оба. Мне нужно использовать vuejs в качестве стартового и Angular для большого проекта.

Swoox 14.06.2019 10:51

Вопрос слишком неконкретный, чтобы на него можно было ответить. Это не будет отличаться для приложения Vue внутри Angular, Angular внутри React и т. д. Не существует общих «лучших практик», запрос на них не относится к теме SO. Если используются элементы Angular, разумно делегировать маршрутизацию хосту, т.е. Vue. Пожалуйста, предоставьте stackoverflow.com/help/mcve для вашей проблемы.

Estus Flask 14.06.2019 11:08

Я не думаю, что фреймворк внутри фреймворка — хорошая идея.

Jalil 14.06.2019 11:48

@Swoox См. принятый ответ

user9993 14.06.2019 22:48

@Jalil см. принятый ответ

user9993 14.06.2019 22:48
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
5
221
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Предположительно, ни один из комментаторов исходного вопроса не знаком с Веб-компоненты (который использует Angular Element). Использование нескольких фреймворков в сочетании с изолированными веб-компонентами — это совершенно нормальная и общепринятая практика. На самом деле, он, вероятно, станет более популярным.

Так или иначе, проблема здесь заключается в принципиальной несовместимости библиотек маршрутизации. Поскольку маршрутизация сильно привязана к адресной строке и HTML 5 History API, дочерние компоненты (независимо от фреймворка или веб-компонентов) не могут просто работать так, как вы ожидаете. Во-первых, Vue Router находится в «родительском» компоненте, в то время как Angular (через веб-компоненты) пытаются настроить маршрутизацию, что затем терпит неудачу.

Вам придется реорганизовать компоненты Angular, чтобы не использовать маршрутизацию.

Это не проблема Vue, Angular и веб-компонента, а проблема маршрутизации.

Ваш ответ теперь имеет для меня смысл. Вместо использования маршрута для отображения компонентов я теперь использую свойство для отображения компонентов. И это рефакторинговое приложение Angular отлично работает в приложении VueJS. Спасибо

Sameer K 14.06.2019 13:45

Другие вопросы по теме