在使用 Nuxt.js 或 Vue.js 时,NuxtLink
和 RouterLink
组件用于在应用中进行导航。默认情况下,Nuxt.js 会在页面导航时显示一个加载栏(loading bar),以提供用户反馈。如果您希望在使用 NuxtLink
或 RouterLink
时不显示加载栏,可以通过以下几种方法来实现。
如果您希望在整个应用中禁用加载栏,可以在 nuxt.config.js
文件中进行配置:
export default {
loading: false
}
这将禁用整个应用的加载栏。
nuxt-link
的 no-prefetch
属性Nuxt.js 提供了一个 no-prefetch
属性,可以防止预取链接的目标页面资源,从而避免显示加载栏。您可以在 NuxtLink
组件中使用这个属性:
<template>
<div>
<NuxtLink to="/about" no-prefetch>Go to About</NuxtLink>
</div>
</template>
如果您希望在某些特定情况下禁用加载栏,可以自定义加载栏组件,并在需要时控制其显示和隐藏。
首先,创建一个自定义加载栏组件,例如 components/CustomLoadingBar.vue
:
<template>
<div v-if="loading" class="custom-loading-bar"></div>
</template>
<script>
export default {
data() {
return {
loading: false
};
},
methods: {
start() {
this.loading = true;
},
finish() {
this.loading = false;
}
}
};
</script>
<style>
.custom-loading-bar {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 4px;
background-color: #42b983;
z-index: 9999;
}
</style>
然后,在 nuxt.config.js
中注册这个自定义加载栏组件:
import CustomLoadingBar from '~/components/CustomLoadingBar.vue';
export default {
loading: CustomLoadingBar
}
如果您只希望在特定页面或组件中禁用加载栏,可以在页面或组件的 asyncData
或 fetch
方法中手动控制加载栏的显示和隐藏。
例如,在页面组件中:
<template>
<div>
<NuxtLink to="/about" @click.native="disableLoadingBar">Go to About</NuxtLink>
</div>
</template>
<script>
export default {
methods: {
disableLoadingBar() {
this.$nuxt.$loading.start = () => {};
this.$nuxt.$loading.finish = () => {};
}
}
};
</script>
在这个示例中,我们通过覆盖 $nuxt.$loading.start
和 $nuxt.$loading.finish
方法来禁用加载栏。
领取专属 10元无门槛券
手把手带您无忧上云