javascript - Vue 组件渲染代替 Laravel Blade 模板
问题描述
我是 Laravel 和 Vue.js 的新手,正在尝试使用 Vue + Blade 设置 Typescript。每当我访问我的刀片视图时,它只会加载没有任何刀片模板的组件。
应用程序.ts
import Vue from "vue";
import ListClubsComponent from "./components/clubs/list-clubs.vue";
new Vue({
el: "#app",
components: {
"list-clubs": ListClubsComponent
}
});
list.blade.php
@extends('templates.default')
@section('content')
<section id="clubs-container">
<h1>Clubs</h1>
<list-clubs :player="{!! $player !!}"></list-clubs>
</section>
@endsection
default.blade.php
<body>
<div id="app">
@include('templates.header')
<main>
@yield('content')
</main>
@include('templates.footer')
</div>
</body>
如果我不在app.ts
我的刀片模板上实例化 Vue,它将加载得很好。我只想将 Vue 用于将加载到我的刀片视图中的组件。
解决方案
你的Vue选择器包装了你所有的内容。尝试使用 Vue 仅包装您想要渲染的组件<div id="app">
:
@extends('templates.default')
@section('content')
<section id="clubs-container">
<h1>Clubs</h1>
<div id="app">
<list-clubs :player="{!! $player !!}"></list-clubs>
</div>
</section>
@endsection
您在list.blade.php中只有少量标记。您可能只需将标记移动到您的Vue组件中:
@section('content')
<!-- All markup is in Vue component -->
<div id="app">
<list-clubs :player="{!! $player !!}"></list-clubs>
</div>
@endsection
编辑:出于自己的好奇心,我对此进行了进一步研究,如果Vue组件在某个地方出现错误并出现故障,刀片模板可能无法呈现任何内容。
推荐阅读
- python - 在“无”中找不到关闭()和关闭()
- node.js - 无论如何在nodejs中上传文件而没有提交按钮?
- python - NameError:名称“nltk”未定义
- c# - 出现错误“请求的资源上不存在‘Access-Control-Allow-Origin’标头”
- javascript - 如何在Angular mat-tree的子元素中显示数组
- reactjs - 使用 settimeout 和 setstate 在反应中去抖动
- c# - Blazor WebAssembly CSS 隔离范围标识不匹配
- javascript - 为什么这个 Javascript 数组访问这么慢?
- reactjs - Postgres 占用了 3000 端口,我无法杀死它
- javascript - 有没有办法循环一个 Observable 并使用前一个迭代来影响下一个?