в created() пишет localStorage или document is not defined <...> nuxt
Я слышал, будто при использовании серверного рендеринга хуки beforeCreate и created выполняются как на сервере, так и на клиенте. Естественно, что на сервере ни localStorage, ни document не будет. Ещё я слышал, что можно проверять, где исполняется код:
if (process.client) {
// здесь можете пощупать localStorage
}
Ну в моем понимании на ларавеле будет чистый API (rest or graphql)
далее отдельно совсем лежит nuxt приложуха (ну это если по простому делать) внутри которой весь твой фронт, и локализации, ну или ты можешь синхронизировать между ларавелом и нукстом единые файлы локализации.
На фронт смотрит nuxt, на него приходят все запросы, внутри он делает запросы к ларавелу, и рисует vue (для этого есть отдельные методы, читай документацию).
Если же переходы происходят на клиенте, то уходят стандартные ajax запросы на сервис ларавела. Перезагрузили страницу, nuxt сделал ajax запрос к сервису ларавела и отдал уже отрендеренный контент.
На ларке пилишь чистый API, на Vue полноценный SPA. Роутинг по сайту делаешь только в клиенте. Для SSR либо ставишь ноду, либо v8js (пример SSR с v8js). Вот и все дела.
Соответственно первая загрузка была долгой, так как грузила скрипты и стили всех страниц.
Ну используйте code splitting в вебпаке, чтобы попилить бандл на отдельные чанки.