avatar

前端/页面缓存keep-alive

移动端中,用户访问了一个列表页,上拉浏览列表页的过程中,随着滚动高度逐渐增加,数据也将采用触底分页加载的形式逐步增加,列表页浏览到某个位置,用户看到了感兴趣的项目,点击查看其详情,进入详情页,从详情页退回列表页时,需要停留在离开列表页时的浏览位置上

类似的数据或场景还有已填写但未提交的表单、管理系统中可切换和可关闭的功能标签等,这类数据随着用户交互逐渐变化或增长,这里理解为状态,在交互过程中,因为某些原因需要临时离开交互场景,则需要对状态进行保存
umi项目的实践
安装

npm install umi-plugin-keep-alive –save

or

yarn add umi-plugin-keep-alive
从 umi 中导出 KeepAlive,包裹在需要被缓存的组件上

import { useState } from ‘react’
import { KeepAlive } from ‘umi’

function Counter() {
const [count, setCount] = useState(0)

return (


count: {count}


<button onClick={() => setCount(count => count + 1)}>add

)
}

export default function() {
const [show, setShow] = useState(true)

return (


Page index


{show && (



)}
<button onClick={() => setShow(show => !show)}>toggle

)
}

注意!一定要包裹住整个组件,可将当前页面取名后再包裹一层进行封装。否则usestate中的值依然无法缓存

文章作者: 小黑
文章链接: http://yoursite.com/2023/01/17/前端/页面缓存keep-alive/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小黑的小站
打赏
  • 微信
    微信
  • 支付寶
    支付寶
2