Pull to refresh

Comments 10

UFO just landed and posted this here

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

UFO just landed and posted this here

Спасибо за полезную статью, мне, как человеку с небольшим опытом очень интересно почитать про подходы, паттерны и как изнутри устроены сборщики

Если зависимость в мфе имеет другую версию, её можно положить в другой скоп, и очистить при онмаунте мфе. На самом деле wmf имеет больше минусов и есть среди них более существенные

UFO just landed and posted this here

Linked Pages & SPAs. Технология, когда создаются два очень похожих приложения, у них общее меню, дизайн, и они развернуты на двух одинаковых доменах. Различается только basePath

Всегда так делали.. не знал что у этого есть официальное определение..)
По ощущениям одни плюсы - можно каждую страничку-спа делать на разном стеке; плюс также удобно разносить ответственность\задачи постранично на разных людей.

Условно огромное приложение не ощущается тормознутым монстром, т.к. на каждой страничке свой небольшой бандл.. и при переходе между страничками за счёт настоящей браузерной перезагрузки всё "подчищается\обновляется" и начинается с чистого листа.

Для тех кто придумал "перезагрузка страниц - это плохо" - какая вам разница где наблюдать спинер.. внутри приложения, или во вкладке браузера?..) в гитлабе вон почти каждая страничка перезагружается.. сильно плохо что-ли?

Но есть проблема, из-за которой мы хотим избавиться от Linked Pages & SPAs. Она в том, что для клиента ничего не меняется, но приложение грузится повторно. 

Почему это проблема? Зашли на страницу-1 - загрузился скажем реакт-бандл.js, в меню нажали на другой раздел - перешли на страницу-2 - загрузился ангуляр-бандл.js. Нажимаем назад - происходит переход на предыдущую страничку - реакт-бандл.js берётся из кеша (никакой повторной загрузки). Причём за счёт такой изолированности и малого объёма бандлов - приложение в целом ощущается быстрее.

Можно ещё вендор либы в cdn класть, тогда не будет этой великой проблемы что разные странички одну и ту же либу грузят, если они будут грузить её из кеша

Ещё к сложностям микрофронтендов можно добавить засорение документа ассетами. Поясню: мф1 маунтится на страницу и добавляет определённое количество стилей в head, затем он анмаунтится но стили остаются, затем мф2 маунтится и добавляет ещё стилей, итп. Таким образом, количество мусора в head растёт и может приводить к пробемам с производительностью и конфликтам стилей.

Подверженность этой проблеме зависит от реализации, но по крайней мере, это то с чем мы столкнулись, разрабатывая свой велосипед

Очень информативно и доступно, спасибо за статью!

Sign up to leave a comment.