Статья была переслана из профессионального сообщества разработчиков laravel. Оригинальная ссылка: https://learnku.com/laravel/t…
Использование laravel для создания одностраничного приложения Vue (SPA) позволяет создать аккуратное приложение, управляемое API. В этом уроке мы узнаем, как создать и запустить приложение spa с маршрутизацией Vue в качестве интерфейса и laravel в качестве серверной части. Сначала мы сосредоточимся на написании каждого небольшого функционального блока кода, а затем в следующих учебных пособиях мы продемонстрируем, как создать полное приложение с laravel в качестве уровня API.
Основной процесс работы приложения Vie spa с laravel в качестве серверной части заключается в следующем:
- Первый запрос запускает маршрут laravel сервера
- Макет спа-салона для рендеринга Laravel
- Следующие запросы используют
history.pushState
API запускает переход на страницу без перезагрузки страницы
Маршрутизатор Vue имеет два режима: режим истории и режим хэширования по умолчанию. Режим хэширования использует хэш URL-адреса для имитации полного URL-адреса, так что страницу не нужно перезагружать при изменении URL-адреса.
Здесь мы будем использовать режим истории, что означает, что нам нужно настроить путь laravel в соответствии с URL-адресом, который все пользователи могут вводить на странице spa. Например, если пользователь обновляет в браузере /привет
Для этого маршрута, нам (laravel) необходимо сопоставить его и вернуть соответствующий шаблон Vue. Маршрутизатор Vue распознает маршрут и отобразит соответствующие компоненты страницы Vue.
устанавливать
Сначала мы создадим проект Laravel
, а затем установим Vue
Из NPM
Пакета маршрутизации:
laravel new vue-router cd vue-router #Establish project links when using Valet valet link #Install NPM dependency and add Vue router package yarn install yarn add vue-router # or npm install vue-router
Мы закончили Ларавель
Установка проекта и vue-маршрутизатор
Пакет готов, чтобы. Далее, настроить маршрут и определить серию маршрутов и компонентов.
Настройка маршрутизации Vue
Vue
Маршрутизация выполняется для Vue
Компонент определяет маршрут, а затем отображает его в следующих тегах приложения:
вид маршрутизатора
Это в целом Vue
В компоненте приложения. Давайте вернемся к ПРИЛОЖЕНИЮ
Компоненту.
Во-первых, мы обновим наиболее важные JavaScript
Документы resources/assets/js/app.js
И конфигурация Через
маршрут. взять app.js
Замените содержимое следующим:
import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter) import App from './views/App' import Hello from './views/Hello' import Home from './views/Home' const router = new VueRouter({ mode: 'history', routes: [ { path: '/', name: 'home', component: Home }, { path: '/hello', name: 'hello', component: Hello, }, ], }); const app = new Vue({ el: '#app', components: { App }, router, });
Нам нужно добавить несколько файлов, но перед этим давайте проверим app.js
:
- Через
Vue.используйте()
Для импорта и установкиМаршрутизатора Vue
подключаемого модуля Мы импортируем три
Vue
Компонента:Приложение
Компонент (самый внешний компонент приложения)Привет
Сопоставление компонентов/привет
МаршрутизацияГлавная
Сопоставление компонентов/
Маршрутизация
- Создайте новый
Vue-маршрутизатор
Объект для хранения конфигурации - С помощью
Vue
Метода построенияПриложения
Компонента давайтеVue
узнаемПриложение
сборку Будет
маршрутизатор
Константа добавлена к этомуVue
В приложении, черезэтот.$маршрутизатор
Иэтот.$маршрут
НазыватьVueRouter
Конструктор содержит массив маршрутов, в котором определены путь, имя (аналогично именованному маршруту laravel) и компонент страницы, соответствующий пути.
В общем, я определю маршрут в отдельном модуле маршрутизации, а затем введу его в основной файл приложения. Но для простоты я буду напрямую использовать основной файл приложения( app.js )Эти маршруты определены в.
Для того, чтобы Laravel mix
Успешно работал, нам необходимо определить следующие три компонента:
mkdir resources/assets/js/views touch resources/assets/js/views/App.vue touch resources/assets/js/views/Home.vue touch resources/assets/js/views/Hello.vue
Прежде всего App.vue
Файл, который является самым внешним элементом контейнера приложения. В этом компоненте мы используем Vue Маршрутизатор
Из Теги определяют “головку” и некоторую навигацию:
Vue Router Demo App
Home |Hello World
Приложение
Наиболее важными тегами в компоненте являются <просмотр маршрутизатора> маршрутизатора>
, другие компоненты, соответствующие маршруту (например, Главная
и Привет
), Все это отображается здесь. маршрутизатора>
Следующий компонент, который необходимо определить, – это ресурсы/активы/js/представления/Home.vue
:
This is the homepage
Наконец, мы ресурсы/активы/js/представления/Привет.vue
Определяем Привет
Компоненты.
Hello World!
Я склонен отделять компонент повторного использования от компонента страницы, помещая компонент страницы в ресурсы/активы/js/представления
В папку, поместите компонент повторного использования в папку ресурсы/активы/js/компоненты
. Я обычно делаю это, потому что это позволяет мне легко отличать повторно используемые компоненты от чистых компонентов страницы.
Если интерфейсная страница сделает это, она сможет запустить наше приложение Vue. Затем нам нужно определить внутренний маршрутизатор и шаблон на стороне сервера.
На стороне сервера
Используя платформу приложений laravel с Vue spa, мы можем легко создать серверный API в нашем приложении. Мы также можем использовать blade для визуализации приложений и настройки общедоступной среды с помощью глобальных объектов JavaScript, что, на мой взгляд, удобно.
В этом руководстве мы не будем создавать экземпляр API, но рассмотрим его в более позднем руководстве. Эта статья в основном посвящена соединению маршрутов Vue.
Первое, что нам нужно решить на стороне сервера, – это определить маршрут. Откройте файл routes/web.
php
и замените маршрут приветствия следующим:
[email protected]')->where('any', '.*');
Мы Спа-контроллер
Контроллер определяет комплексный маршрут, а это означает, что любой веб-маршрут будет сопоставлен с нашим спа-центром. Если мы этого не сделаем, когда пользователь отправит /привет
По запросу, laravel вернет ответ 404
Далее нам нужно создать Spa-контроллер
Контроллер и определить представление:
php artisan make:controller SpaController
Откройте Spa-контроллер
Контроллер и введите следующее:
Наконец, введите следующее, чтобы resources/views/spa.blade.php
:
Vue SPA Demo
Мы определили необходимый элемент ~#app
, содержащий компоненты App
и другие компоненты, отображаемые на основе URL-адреса.
Запуск проекта
С тех пор мы завершили базовую структуру приложения spa с использованием Vue и маршрутизатора Vue. Далее, давайте запустим JavaScript, чтобы показать это:
Yarn watch or NPM run Watch
Когда мы введем соответствующий URL-адрес в браузере, мы увидим следующую страницу:
следующий шаг
Мы создали скелет приложения Vue spa, используя laravel в качестве уровня API. Однако в следующих учебных пособиях еще предстоит реализовать множество функций:
- Определите маршрут 404 в интерфейсе
- Использовать параметры маршрутизации
- Подземный маршрут
- Сделайте запрос API к laravel в компоненте
- Их может быть гораздо больше, но я не собираюсь перечислять их все здесь
Благодаря этим основным приготовлениям в этом руководстве показано, что мы можем легко использовать маршрутизатор Vue для запуска приложения spa. Если вы не знакомы с маршрутизатором Vue, обратитесь к документации по маршрутизатору Vue.
Войдите в часть 2!