Можем ли мы использовать шаблоны лезвий laravel в vue-маршрутизации вместо vue-компонентов? - PullRequest
0 голосов
/ 25 июня 2019

Можно ли использовать шаблоны лезвий laravel вместо компонентов vue для маршрутизации с использованием vue маршрутизации?Я хочу направлять свои файлы blade-серверов без обновления страницы, как мы делаем в Spa, используя vue маршрутизацию.

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 //Vue Component
        },
        {
            path: '/hello',
            name: 'hello',
            component: Hello, //Vue Component
        },
    ],
});

Я хочу использовать блейд-файлы вместо vue-компонентов, которые я назвал home и hello

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

Вы можете использовать ajax для получения html в качестве ответа и рендеринга в vue.

В вашем контроллере:

public function renderHtml()
{
   $data = ... ;
   $html = view('test',compact('data')->render();
   return response()->json($html);
}

В вашем компоненте Vue используйте vanilla JS или jquery для получения разметки ипривязать его к компоненту

fetch('renderhtml')
   .then(response => () {
       element.innerHTML(response.data);
});

Обратите внимание, что это не очень надежное решение для каждого случая.

0 голосов
/ 25 июня 2019

Насколько мне известно, вы не можете. Поскольку Laravel на самом деле не обслуживает *.blade.php файлы, а скорее компилирует их в обычный PHP, помещает в папку storage/framework/views (по умолчанию) и затем обслуживает.

Из официальных документов :

Фактически, все представления Blade компилируются в простой код PHP и кэшируются до тех пор, пока они не будут изменены

Так что в любом случае должно произойти обновление страницы , чтобы обслуживать другой файл PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...