代码之家  ›  专栏  ›  技术社区  ›  Dasonic

扩展布局时,Vue组件找不到应用程序

  •  1
  • Dasonic  · 技术社区  · 5 年前

    扩展包含ID为“app”的div的布局时,Vue元素将不会加载,并给出错误“找不到元素:app”

    我试着做了一个新的布局,就是把@yield包装在一个id为app的div中,一个非常简单的组件,得到相同的结果。

    示例组件.vue

    <template>
        <div class="container">
            {{ count }}
        </div>
    </template>
    
    <script>
    export default{
        data() {
            return {
                count: 0
            }
        }
        }
    </script>
    

    应用程序js

    Vue.component('example-component', require('./components/ExampleComponent.vue').default);
    
    const app = new Vue({
        el: '#app',
    });
    

    欢迎.blade.php

    @extends('layouts.new')
    
    @section('content')
        <example-component></example-component>
    @endsection
    

    new.blade.php文件

    <head>
        <script src="{{ asset('js/app.js') }}"></script>
    </head>
    <body>
        Hello
        <div id="app">
            @yield('content')
        </div>
    </body>
    

    我希望数字0出现在页面上,但未显示任何内容,控制台中出现错误:

    “[Vue warn]:找不到元素:app”

    当检查页面时,示例组件被包装在一个id为app的div中。 HTML Layout

    为什么我会犯这个错误?

    1 回复  |  直到 5 年前
        1
  •  2
  •   Decade Moon    5 年前

    你的 app.js 脚本将在 #app div已加载。

    把你的剧本放在 <body> 标记而不是在 <head> 以下内容:

    <body>
        Hello
        <div id="app">
            @yield('content')
        </div>
        <script src="{{ asset('js/app.js') }}"></script>
    </body>