vue-router在每条新路由上重新加载App.vue

时间:2019-01-15 05:48:05

标签: vue.js vue-router

我有一个App.vue文件,其中包含一个vue-router组件,可加载我不同页面的内容,如下所示:

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

我的created()方法中也有一些AJAX调用,每次通过路由器加载新页面时似乎都会触发这些调用。有什么方法可以使事物结构化,以便我的created()方法仅在应用程序加载时调用一次,而不是在路由器内的新页面加载时调用一次?

2 个答案:

答案 0 :(得分:0)

一种方法是在创建确定何时进行Ajax调用的逻辑时使用Navigation Guards

Other将使用Vuex,并创建一个状态对象来管理Ajax调用,在组件已被加载之前调度一个事件,并将计算所得的属性绑定到将包含值的getter,如果组件已预先加载。

答案 1 :(得分:0)

解决方案比我想象的简单得多:

App.vue页面使用了硬编码到每个路线的href链接。 如果您切换为使用

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

相反,一切正常运行-但是Vue不会重新加载App.vue组件!