Должен ли VueJS перезапускать main.js при каждом изменении маршрута - PullRequest
1 голос
/ 27 июня 2019

Vue.js будет перезапускать main.js, где основной экземпляр Vue определяется каждый раз, когда изменяется маршрут. Это нормальное поведение?

Согласно документации vue-router, только компоненты, относящиеся к маршрутизатору, изменяют свое содержимое вместе с маршрутами. Тем не менее, я добавил простой вызов журнала консоли внутри основного обработчика, созданного экземпляром Vue, и он вызывается после каждого изменения маршрута.

// main.js

import App from './App.vue'

new Vue({
  created() {
    console.log('main created hook')
    this.$store.dispatch(listenToAuthChanges)
  },
  render: h => h(App),
  router,
  store
}).$mount('#app')
// /router/index.js

import Router from 'vue-router'
import routerConfig from '@/config/routes'
import { requireAuth } from './navigationGuards'

const routes = Object.values(routerConfig)
  .map(route => ({
    ...route,
    component: () =>
      import(
        /* webpackChunkName: "route.component" */
        `@/views/${route.component}.vue`
      )
  }))

const router = new Router({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

router.beforeEach(requireAuth)
<!-- App.vue -->

<template>
    <router-view />
</template>

Я ожидал бы, что только содержимое внутри 'router-view' будет обновляться после каждого маршрута, не вызывая полной перезагрузки приложения, которая вызывает начальную выборку данных и нарушает защиту навигации по аутентификации.

...