Первая итерация моего веб-приложения с Laravel Spark использовала стандартную функциональность блейда для ввода и отображения данных. В Larvel это так просто, однако для выполнения отправки и отображения обновлений, как и для большинства (всех?) php-приложений, требовалось обновление страницы. Я знаю, что всякий раз, когда я использую веб-приложение, выполняющее полное обновление страницы, я немного разочаровываюсь.

К счастью, Spark поставляется с Vue.js — Vue.js — это быстрый и легкий JavaScript-фреймворк, который, как и laravel, хорошо документирован и прост в использовании — особенно с учетом того, что Джеффри Уэй дает много уроков по Laracasts. Используя Laravel для создания API, становится довольно легко выполнять нужные мне действия, используя возможности AJAX Vue.

Моя задача и возможность обучения заключались в том, чтобы:

  • Отправьте и сохраните заполненную форму
  • Запустите модальную форму с некоторыми из только что отправленных элементов данных
  • Если конкретный рабочий процесс выбран из вариантов, представленных в модальном окне, вернитесь на страницу, чтобы ввести следующую запись и показать полный список состояний всех активных записей.

Файл Vue

Чтобы выполнить все три требования, я провел несколько часов, играя с Методами — пытаясь отфильтровать и перезагрузить и т. д. Я смог заставить первые два элемента с маркированными списками работать нормально — ключом ко всем трем было извлечение свойств из объекта данных Vue в функция вне компонента Vue, а затем вызов функции при создании страницы и после любых событий, управляемых пользователем — нашел это решение благодаря Stackoverflow и Линусу Боргу

function initialState() {
return {

}
}

Затем извлеките свойства объекта данных, вызвав функцию

Vue.component('home', {
props: ['user'],

data: function() {
return initialState();
},

Во время первоначальной загрузки страницы

created() {
this.getAdrList();
this.getAssignUser();
},

и последующие пользовательские события

Это определенно обучающее путешествие, поэтому любые альтернативные подходы или рекомендации приветствуются.

ПРИМЕЧАНИЕ. Хотя можно создать SPA с помощью Vue без Laravel, я предпочитаю функции маршрутизации, контроллера и доступа к данным, предоставляемые Laravel — возможно, когда я лучше разберусь во всех компонентах, я рискну просто использовать Vue для проекта