是否可以使用laravel刀片模板而不是vue组件来通过vue路由进行路由?我希望像在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
},
],
});
我想使用刀片文件代替我已经命名为home和hello的vue组件
答案 0 :(得分:0)
据我所知,你做不到。由于Laravel实际上并没有向您提供*.blade.php
文件,而是将它们编译为纯PHP,因此将它们放入storage/framework/views
(默认情况下)文件夹中,然后提供服务。
实际上,所有Blade视图都被编译为纯PHP代码并进行缓存,直到对其进行修改
因此,在任何情况下,都必须进行页面刷新来提供其他PHP文件。
答案 1 :(得分:0)
您可以使用ajax获取html作为响应并在vue中呈现。
在您的控制器中:
public function renderHtml()
{
$data = ... ;
$html = view('test',compact('data')->render();
return response()->json($html);
}
在您的Vue组件中,使用普通JS或jquery获取标记并将其绑定到组件
fetch('renderhtml')
.then(response => () {
element.innerHTML(response.data);
});
请注意,这并不是每种情况下真正可靠的解决方案。