我有一个App.vue文件,其中包含一个vue-router组件,可加载我不同页面的内容,如下所示:
<template>
<div>
<router-view
:auth="auth"
:page_id="page_id"
>
</router-view>
</div>
</template>
我的created()方法中也有一些AJAX调用,每次通过路由器加载新页面时似乎都会触发这些调用。有什么方法可以使事物结构化,以便我的created()方法仅在应用程序加载时调用一次,而不是在路由器内的新页面加载时调用一次?
答案 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组件!