Необходимо сделать сайт, со следующими требованиями:
* я хочу иметь несколько страниц: вход/регистрация, главная, админка. У всех будут разные макеты
* я хочу не загружать весь код пользователю при первом доступе .
* Я хочу создавать макет страницы до того, как javascipt запустится на клиенте (SSR, т.к. нужен будет сео).
Сейчас привлек внимание nuxt js, т.к. у него есть ssr но я не много не пойму, когда он делает рендер на стороне сервера, он всегда возвращает SPA?
можно ли сделать nuxt SSR + MPA (multi-page app)?
Также хотел бы объяснить зачем мне нужен именно такой сайт а не spa насколько я понимаю, спа грузит все приложение при первом обращении пользователя к сайту, но я бы хотел при первом обращении отдавать пользователю только ту страницу которую он запросил, не все приложение, а остальное приложение хотел бы загружать в фоновом режиме, пока пользователь знакомится с материалом, представленным на странице
Пара фактов:
SSR работает только при первом запросе. Дальше загружается СПА поверх ССР и всё дальнейшее действие происходит в СПА. (когда запрашивает гугл-бот - каждый запрос как первый)
СПА может грузить куски кода и компоненты динамически по мере необходимости. В vue (и webpack под ним) это удобно и просто сделано.
Aetae, а можете показать пример? или это уже из коробки реализовано? имею ввиду что приложение грузится по частям (это самое главное что мне нужно).
то что вы ответили про первичную загрузку я понял, но мне нужно разбить этот spa на несколько чанков, скажем так, чтобы грузился не сразу весь, а, например, сначала просматриваемая страница затем в фоне все остальное
vitaly_74, он будет его грузить тогда, когда будет вызвана в коде в функция import(). Не будет вызвана - вообще никогда не загрузит. В vue суть та же, просто vue вызовет import тогда и только тогда, когда надо будет нарисовать компонент\открыть страницу.
Чтоб грузило что-то заранее "в фоне" - надо просто добавь link prefetch на страницу, для нужных файлов. Для этого есть prefetch plugin.
"спа грузит все приложение при первом обращении пользователя к сайту, но я бы хотел при первом обращении отдавать пользователю только ту страницу которую он запросил", - и в spa и в nuxt ssr можно отдавать ту страницу которую запросил, это назвается lazy load pages.