Vue route: Uncaught TypeError: window.Vue.use не является функцией - PullRequest
0 голосов
/ 17 декабря 2018

в моем проекте Laravel я использую библиотеку Vue и пытаюсь использовать маршрутизатор vue в своих модулях, но при попытке импортировать маршрутизатор vue, как обычно ( см. Код ниже ), я получил ошибкув моей консоли: Uncaught TypeError: window.Vue.use не является функцией

Есть идеи, как решить эту проблему?Я создал этот модуль с помощью веб-пакета.

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)
});

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Не уверен, но, вероятно, это была ошибка моей халатности.

Проблема была в порядке файлов 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>
0 голосов
/ 17 декабря 2018

Я думаю, что это проблема с загрузкой / импортом Vue в laravel.
Вы пытались изменить его на следующее:

import Vue from 'vue/dist/vue'

window.Vue = Vue
Vue.use(VueRouter)

Вы можете попробовать console.log(window.Vue), чтобы проверить, правильно ли подключен Vueили если window.Vue не определено.Вы также можете попробовать это как console.log(Vue), чтобы увидеть, что импортируется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...