@ramiloremispum
Backend Web-dev

Как отобразить глобальный компонент vue3 в blade шаблоне laravel 9?

Не могу вывести глобальный компонент vue3 в blade вьюхе в проекте laravel 9.
У меня так:
Blade:

...
@vite(['resources/css/app.css', 'resources/js/app.js'])
</head>
<body>
<div id="app">
    <login-component></login-component>
</div>
</body>
...

package.json
{
    "private": true,
    "scripts": {
        "dev": "vite",
        "build": "vite build"
    },
    "devDependencies": {
        "axios": "^0.27",
        "laravel-vite-plugin": "^0.6.0",
        "lodash": "^4.17.19",
        "postcss": "^8.1.14",
        "vite": "^3.0.0"
    },
    "dependencies": {
        "@vitejs/plugin-vue": "^3.1.0",
        "vue": "^3.2.36",
        "vue-loader": "^17.0.0"
    }
}

vite.config.js
import {defineConfig} from 'vite';
import laravel from 'laravel-vite-plugin';
import vue from '@vitejs/plugin-vue'

export default defineConfig({
    plugins: [
        laravel({
            input: ['resources/css/app.css', 'resources/js/app.js'],
            refresh: true,
        }),
        vue({
            template: {
                transformAssetUrls: {
                    base: null,
                    includeAbsolute: false
                }
            }
        }),
    ],
});


resources/js/app.js
Не указываю rootComponent в createApp, т.к. он мне не нужен
import './bootstrap';
import {createApp} from "vue";
import LoginComponent from "./components/LoginComponent.vue";

const app = createApp({});
app.component('LoginComponent', LoginComponent)
app.mount('#app');


Сам компонент LoginComponent
<template>
login component
</template>

<script>
export default {
}
</script>

<style scoped>

</style>

При таком раскладе компонент не выводится. Но если LoginComponent в app.js указать в createApp() таким образом
const app = createApp(LoginComponent);
, то выводится.

Что делаю не так? Делал по документации vue3 глобальных компонентов.
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы