x***@sina.com
x***@sina.com
  • 发布:2022-06-30 08:53
  • 更新:2022-11-09 09:12
  • 阅读:1093

uniapp在H5端为什么会对一个页面缓存(keep-alive)两次

分类:uni-app

写uniapp项目的时候,发现在H5端默认开启了keep-alive功能,而且官网没有任何可以配置的地方。导致了无法进行取消或者自定义配置keep-alive。而且发现了在多个页面来回跳转的时候,对同一个页面缓存了多次,导致在页面使用activated钩子函数的时候,同时触发了created钩子函数。这个功能确定不是鸡肋吗????页面缓存如下图,这个是新项目,通过vue-cli方式创建。

2022-06-30 08:53 负责人:无 分享
已邀请:
3***@qq.com

3***@qq.com - 前端开发

看官方生命周期 onshow/onload

3***@qq.com

3***@qq.com - 前端开发

https://uniapp.dcloud.io/api/router.html

1***@qq.com

1***@qq.com

一开始我也被这个问题困扰,keepAlive include几乎所有页面,但是有些页面第二次进入时不会使用inactive的第一次的页面实例,反而会再生成一个实例,导致缓存策略有点迷糊,另外一方面缓存会导致页面关键生命周期只执行一次(未销毁)。
解决的方法是:在App.vue入口文件加上,下面代码是官方仓库github复制出来的,去掉属性keepAliveInclude即可

<template><App :keepAliveInclude="keepAliveInclude"/></template>

success:

<template><App /></template>

仓库line 133

要回复问题请先登录注册