перезагрузка vue-router App.vue на каждом новом маршруте - PullRequest
0 голосов
/ 15 января 2019

У меня есть файл App.vue, в котором есть компонент vue-router, который загружает содержимое моих разных страниц, например:

<template>
   <div>
        <router-view
        :auth="auth"
        :page_id="page_id"
        >
        </router-view>
    </div>
</template>

У меня также есть некоторые AJAX-вызовы в моем методе create (), которые, кажется, запускаются каждый раз, когда я загружаю новую страницу через маршрутизатор. Есть ли способ структурировать вещи так, чтобы мой метод create () вызывался только один раз при загрузке приложения, а не каждый раз, когда загружается новая страница в маршрутизаторе?

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Решение оказалось намного проще, чем я думал:

Страница App.vue использовала ссылки href, жестко запрограммированные для каждого маршрута. Если вы переключитесь на использование

<router-link to="path to your route">text here</router-link>

Вместо этого все работает как обычно - но Vue не перезагружает компонент App.vue!

0 голосов
/ 15 января 2019

Один подход будет использовать Navigation Guards , когда вы создаете логику, чтобы определить, когда делать ваши Ajax-вызовы.

Другое будет использовать Vuex и создавать объект состояния для управления вызовами Ajax, отправлять событие, когда компонент был загружен ранее, и привязывать вычисляемое свойство к получателю, который будет содержать значение если этот компонент был загружен ранее.

...