Vue 3组件未在Laravel项目中显示

u4vypkhs  于 2023-08-08  发布在  其他
关注(0)|答案(4)|浏览(100)

我已经尝试了我能想到的一切,但尽管没有构建错误,我仍然无法在我非常简单的项目中加载Vue组件。我不明白为什么,但我只是得到一个空白页时,试图查看页面与Laravel服务。

welcome.blade.php

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
    
        <title>Laravel</title>
    
        <!-- Fonts -->
        <link href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap" rel="stylesheet">
    
    </head> 
    <body class="antialiased">
        <div id='app'>
            <Home />
        </div>
    
        <script scr="{{ asset('js/app.js') }}"></script>
    </body>
</html>

字符串

app.js

require('./bootstrap');

import { createApp } from 'vue'

import Home from './components/Home.vue';

const app = createApp({});

app.component('home', Home);

app.mount('#app');

Home.vue

<template>
    <div>
        <h1> WELCOME </h1>
    </div>
</template>

webpack.mix.js

const mix = require('laravel-mix');

/*
 |--------------------------------------------------------------------------
 | Mix Asset Management
 |--------------------------------------------------------------------------
 |
 | Mix provides a clean, fluent API for defining some Webpack build steps
 | for your Laravel applications. By default, we are compiling the CSS
 | file for the application as well as bundling up all the JS files.
 |
 */

mix.js('resources/js/app.js', 'public/js')
    .vue()
    .postCss('resources/css/app.css', 'public/css', [
        //
    ]);

wfsdck30

wfsdck301#

  • 我不能评论,因为我的分数,抱歉,不得不这样做,像一个awnser.. *

您确定app.component('home', Home);行是导入伴奏正确方法吗?因为据我所知,这是

Vue.component('home', require('./components/Home.vue').default);

字符串
这应该是个办法

pcrecxhr

pcrecxhr2#

您是否尝试将刀片式服务器中的标记从<Home />更改为<home />?必须在导入组件的行中添加.default

gcxthw6b

gcxthw6b3#

基本上需要添加一些我添加到app.js的东西到.vue文件中才能让它工作,比如从vue导入。

l2osamch

l2osamch4#

这是一个老问题,但据我所知,你还没有收到一个令人满意的答复/解决方案。
我也遇到了同样的问题/一个非常类似的升级一个非常老的Laravel项目(大约9年前开始在一个旧的Laravel版本上)从AngularJS到Vue 3:尽管进行了所有尝试和非常准的设置,Vue根应用程序组件没有加载。
解决方案是确保“main”app.js文件是使用script defer标记加载的。因此,在刀片文件中,更改:

<script scr="{{ asset('js/app.js') }}"></script>

字符串

<script defer src="{{ asset('js/app.js') }}"></script>


作为旁注,在您最初的问题中,这一行有一个错字:将脚本scr改为脚本src:-)

相关问题