现象:
项目的使用了keepalive进行缓存页面,但是在三个页面之间跳转路由时发现第一次从页面A跳到页面B再跳转到页面C之后,再点浏览器的返回,这个时候页面B没有被缓存,仍然进入到了created生命周期,经排查发现,是因为我跳转的路由中有中文,keepalive第一次缓存的是正常的带中文的路由,当返回的时候中文变成了乱码,keepalive中没有缓存这个乱码的路由,所以第一次返回的时候页面缓存没生效,第二次正常中文和中文乱码路由都被缓存了,这个时候页面缓存就正常了。
示例代码:
1.App.vue代码
<template>
<div>
<keep-alive>
<router-view v-if="$route.meta.keepAlive" :key="$route.fullPath"/>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive" :key="$route.fullPath"/>
</div>
</template>
2.路由里配置keepalive的页面
{
path: '