Каким образом можно вызывать одно приложение из другого без перезагрузки страницы?
Есть несколько приложений: App1, App2.
К обоим можно достучатсья по разному роуту /app1+(/route) и /app2/:param+(/route). В некоторых виюшках приложения App1 есть прямые линки на App2 с параметром.
Проблема в том, что и App1 и App2 грузятся достаточно долго, к тому же у укаждого из них есть свой history и свой store, причем у App2 history.basename определяется по передаваемому параметру.
В общем, мой вопрос, очевиден: как можно поступить с этими приложениями, чтобы в App1, в определенном клике по контейнеру, обращаясь на App2 не перезагружалась страница? Попробовал динамическую подгрузку, но у них же соственные props и я что-то не смог разобраться толком. Может есть какие-то примеры объединения SubApp?
Без относительно к формулировкам (веб страницу называете приложениями) существует древний способ, открывать страницу во фреймах, т.е. одновременно два запущенных приложения, если оба приложения ваши, вы можете контролировать какие ссылки в каком фрейме открывать.
p.s. очень грустно будет жить нам в будущем, все приложение в вебе, корявее некуда.
Очень интересно, а с чего Вы решили, что конкретно данное решение - корявое? Приложения мои, но впиливать много кода не перспективно с точки зрения затраты времени на решение. Фреймы? Нет, спасибо, писать код на реакте, под нод, и использовать фрейм, просто супер)
Когда вы переходите к понятию - приложение, это значит вы специально выделили код и область исполнения именно для него.
Но ваша задача, превратить как бы два приложения в одно объединенное, вам нужно в терминологии майкрософта interprocess communication, а значит оба приложения должны быть запущены, с точки зрения веб - открыты страницы, но в веб одно приложение = одна страница, и только фреймы позволяют почти прозрачно работать с несколькими независимо.
Я понимаю, можно написать приложения таким образом, чтобы они могли работать независимо на одной странице (если все было правильно сделано, кажется это не сложно), но скорее всего это надо много переписывать все равно.
С точки зрения веб-логики, для вашей задачи наверное правильно перенести общую часть функционала на сервер, но тогда всплывают вопросы производительности.
p.s. к сожалению именно вот это самое 'с точки зрения логики' очень часто в веб-разработке идет в разрез со здравым смыслом и производительностью.