首先,我想实现在返回页面时,页面不进行刷新,比如我原先选择的第四页,返回后显示了第一页
想到使用keepAlive缓存组件,大部分推荐的方法为这样,但是不生效
<keep-alive v-if="$route.meta.keepAlive"> <router-view /> </keep-alive> <router-view v-else />
正确的使用方法
<keep-alive> <router-view v-if="$route.meta.keepAlive" /> </keep-alive> <router-view v-if="!$route.meta.keepAlive" />
原因
通过v-if来判断是否生成keep-alive,当列表页面符合条件时,内存缓存了组件状态。当跳转到详情页时,不符合条件,由于v-if是挂载到keep-alive标签上,会把之前keep-alive的列表页面进行销毁,再次进入到列表会重新创建
标签:keepAlive,alive,keep,生效,动态,列表,页面 From: https://www.cnblogs.com/wcq520/p/18108050