Итак, я думаю о структуре веб-страницы моего ресторана, которая будет использовать laravel в качестве бэкэнда (маршрутизация и отображение блэйдов в браузере, простая система аутентификации и сеансы) и vue.js для фронтэнда (У меня есть один экземпляр vue, в котором я регистрирую компоненты, каждый из которых представляет собой представление, целую страницу, большинство этих страниц имеют вложенные 2 или 3 компонента, такие как ползунок изображения, привязка к вершине, для извлечения я использую axios мои конечные точки API без обновления страницы, а также множество операций CRUD из панели администратора).
Вот так выглядит мое представление index.blade.php (www.domain.com/), у меня много представлений, например posts.index.blade.php ...
@extends('layouts.master')
@section('content')
<page-index></page-index)
@endsection
Как видите, я хочу рассматривать каждую страницу как vue.component со многими компонентами, вложенными в каждый компонент страницы).
У меня есть несколько вопросов о возможных осложнениях при использовании этой структуры.
При отображении представлений я всегда возвращаю объект json со всеми данными, которые я хочу визуализировать на блейде, поскольку каждая страница в основном является компонентом vue.js, загруженным через javascript. Как я смогу циклически просматривать блюда, события и сообщения, которые я взято из бэкэнда. Я хочу использовать директиву v-for, но как мой компонент может узнать о данных, передаваемых в blade-сервер? Я не хочу использовать axios при подключении для заполнения моих представлений ... это резко увеличит количество запросов, отправляемых на сервер.
Поскольку весь контент страницы отображается с помощью javascript, это не повлияет на SEO? сканеры afaik search не будут загружать контент, отображаемый в javascript.
Это хорошая практика, это лучший способ справиться с laravel + vue.js не-SPA? Это хорошая абстракция переднего и заднего плана?
Как я буду обрабатывать аутентификацию, выполняя запросы axios к конечным точкам входа в laravel.