Vue 路由:未捕获类型错误:window.Vue.use 不是函数

新手上路,请多包涵

在我的 Laravel 项目中,我正在使用 Vue 库,并且我试图在我的模块中使用 vue 路由器,但是当我像往常一样尝试导入 vue 路由器时( _参见下面的代码_),我的控制台出现错误: Uncaught TypeError: window. Vue.use 不是函数

任何想法如何解决这个问题?我使用 webpack 创建了这个模块。

 import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

import App from './App.vue'

const router = new VueRouter({
    routes: [{
        'path' : '/user/:id/'
    }]
});

new Vue({
  router,
  el: '#play',
  render: h => h(App)
});

原文由 bakis 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 815
2 个回答

不确定,但可能是我的疏忽造成的。

问题出在页面加载时的 JS 文件顺序中。仍然不确定为什么会这样。我尝试在标记之前使用生成的 JS 文件,但这没有用,所以我只是将我的 JS 文件放在 Vue 模板容器之后,它开始工作(检查下面的代码片段)。如果有人对此有任何解释,我会很高兴听到,因为现在我可以称之为“魔法”。

 <body>
    @yield('after_body_open')

    {{--Header--}}
    <header>
        @include('layouts.top-bar')

        @include('layouts.header')
    </header>

    {{--Page content--}}
    <main>
        @yield('content')
    </main>

    <div id="play"></div>{{--Vue instance--}}
    <script src="{{ asset('js/vue/play.js') }}"></script> **TO HERE**

    {{--Footer--}}
    <footer></footer>

    {{--Notifications block--}}
    <div id="notifications"></div>{{--Vue instance--}}

    {{--Required JS files--}}
    <script src="{{ asset('js/vue/navigation.js') }}"></script>
    <script src="{{ asset('js/vue/notifications.js') }}"></script>
    <script src="{{ asset('js/vue/play.js') }}"></script> **FROM HERE**

    @yield('before_body_close')
</body>

原文由 bakis 发布,翻译遵循 CC BY-SA 4.0 许可协议

我认为这是在 laravel 中加载/导入 Vue 的问题。

您是否尝试过将其更改为以下内容:

 import Vue from 'vue/dist/vue'

window.Vue = Vue
Vue.use(VueRouter)

您可以尝试 console.log(window.Vue) 查看 Vue 是否正确附加,或者 window.Vue 是否未定义。您也可以像 console.log(Vue) 一样尝试查看导入的内容。

原文由 mava 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题