猿问

keep-alive 缓存的时候,我想动态的判断一个组件是否缓存,因为一个组件进去的方式不同有时候

keep-alive 缓存的时候,我想动态的判断一个组件是否缓存,因为一个组件进去的方式不同有时候需要缓存有时候不需要缓存


假设这里有 3 个路由: A、B、C。

需求:

默认显示 A

B 跳到 A,A 不刷新

C 跳到 A,A 刷新


在 A 路由里面设置 meta 属性:


        {

                path: '/',

                name: 'A',

                component: A,

                meta: {

                    keepAlive: true // 需要被缓存

                }

        }

在 B 组件里面设置 beforeRouteLeave:

beforeRouteLeave(to, from, next) {


         // 设置下一个路由的 meta

        to.meta.keepAlive = true;  // 让 A 缓存,即不刷新

        next();

    }

在 C 组件里面设置 beforeRouteLeave:

beforeRouteLeave(to, from, next) {


        // 设置下一个路由的 meta

        to.meta.keepAlive = false; // 让 A 不缓存,即刷新

        next();

    }


这样的话第一次 B 到 A 刷新,之后就没事了,

我 console.log(to.meta.keepAlive) 打印的值也是 true 

怎么才能解决这个问题呢? 在线等


不负相思意
浏览 1324回答 2
2回答

Qyouu

你可以看看这个我之前遇到了类似的问题链接
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答