假设有两个页面:列表页A和详情页B,现需求从A页面进入B页面刷新,从B页面回退A页面不刷新。
解决方案使用keepAlive
在 App.vue 插入以下代码:
<keep-alive>
<router-view v-if="$route.meta.keepAlive">
<!-- 这里是会被缓存的视图组件,比如 Home! -->
</router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive">
<!-- 这里是不被缓存的视图组件,比如 Edit! -->
</router-view>
在 index.js 中修改并添加以下代码:
{
path: '/A',
name: '列表页',
meta: {
keepAlive: true // 需要被缓存
},
component: () =>
import( /* webpackChunkName: "views" */ '@/****/*****')
},{
path: '/B',
name: '事件详情',
meta: {
keepAlive: false // 需要被缓存
},
component: () =>
import( /* webpackChunkName: "views" */ '@/****/***')
}
在A页面写入:
beforeRouteLeave(to, from, next) {
if(from.name=='事件详情'){
// 设置下

本文介绍如何在Vue.js应用中处理页面后退时不刷新的问题。通过在App.vue中配置keepAlive组件,并在A页面添加meta信息,可以确保从详情页B返回列表页A时不触发页面刷新。
最低0.47元/天 解锁文章
3598

被折叠的 条评论
为什么被折叠?



