首页 > 解决方案 > Vuejs3 道具从 laravel 刀片到 vue 组件未定义

问题描述

这是刀片文件

@extends('layouts.master')
@section('content')
<div id="app">     
  <demo test="fsdf"></demo>  
</div>
<script src="{{asset('js/app.js')}}"></script>
@endsection

这是 app.js 文件

import {createApp} from 'vue';
import Demo from './components/Demo.vue';

const vue3App = createApp(Demo);
vue3App.mount('#app');

这是 Demo.vue 文件

<template>
<h1>Demo</h1>
</template>
<script>
export default {
    props: ['test'],
    setup(props) {
        console.log(props);
    }
}
</script>

演示组件中的道具总是显示未定义!不知道我错过了什么。我也在使用 6.0.34 的 laravel-mix。

标签: laravel-8vuejs3laravel-mix-vue3

解决方案


它是未定义的,因为您必须先注册组件

    import {createApp} from 'vue';
    import Demo from './components/Demo.vue';
    
    const app = createApp({
       mounted() {
          console.log('The app is working')
       }
    });
    app.component('demo', Demo); //global registration
    app.mount('#app');

推荐阅读