react实现组件状态缓存

简介: react实现组件状态缓存

前言


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


但是有第三方库 react-activation 个人感觉这个好用!


提示:以下是本篇文章正文内容,下面案例可供参考


一、安装第三方库


npm i react-activation


二、配置操作


1、在根目录引入 AliveScope


import {AliveScope} from 'react-activation'
import App from './App';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <BrowserRouter>
    <Provider store={store}>
      <AliveScope>
        <App />
      </AliveScope>
    </Provider>
  </BrowserRouter>
);


2、在需要保留状态得组件上使用 KeepAlive 包裹


我要保留cate组件得状态所以使用keepAlive包裹cate组件


import { Navigate } from 'react-router-dom'
import {KeepAlive} from 'react-activation'
// 懒加载路由需要放到普通路由最下面
import NotFound from '../pages/notFound'
import Layout from '../pages/Layout'
import Home from '../pages/Layout/Home'
import Cate from '../pages/Layout/Cate'
import CateItem from '../pages/Layout/CateItem'
import ShopCar from '../pages/Layout/ShopCar'
import Me from '../pages/Layout/Me'
import ItemAll from '../pages/ItemAll'
const routerList = [
  { path: '/', element: <Navigate to="/home" /> },
  {
    path: '/home', element:<Layout />,children:[
      {index:true, element: <Navigate to="index" />},
      {path:'index', element: <Home />},
      {path:'cate', element: <KeepAlive><Cate /></KeepAlive>},  //这里需要包裹
      {path:'cateItem', element: <CateItem />},
      {path:'shopcar', element: <ShopCar />},
      {path:'Me', element: <Me />},
    ]
  },
  { path: '*', element: <NotFound /> }
]
export default routerList


总结


以上就是要保留组件状态得最佳办法了。


目录
相关文章
|
3天前
|
存储 缓存 JavaScript
Vue的缓存组件 | 详解KeepAlive
Vue的缓存组件 | 详解KeepAlive
8 0
|
9天前
|
缓存 前端开发
react18【系列实用教程】memo —— 缓存组件 (2024最新版)
react18【系列实用教程】memo —— 缓存组件 (2024最新版)
12 0
|
9天前
|
缓存
react18【系列实用教程】useCallback —— 缓存函数 (2024最新版)
react18【系列实用教程】useCallback —— 缓存函数 (2024最新版)
10 0
|
9天前
|
缓存
react18【系列实用教程】useMemo —— 缓存数据 (2024最新版)
react18【系列实用教程】useMemo —— 缓存数据 (2024最新版)
13 0
|
1月前
|
缓存 监控 JavaScript
使用 keep-alive 时,监控和分析组件的缓存行为
使用 keep-alive 时,监控和分析组件的缓存行为
|
1月前
|
缓存 JavaScript
请问如何在 keep-alive 组件中设置缓存的最大数量和过期时间
请问如何在 keep-alive 组件中设置缓存的最大数量和过期时间
|
20天前
|
缓存 JavaScript API
Vue-Router路由动态缓存组件(keep-alive),vue2/vue3不同写法
Vue-Router路由动态缓存组件(keep-alive),vue2/vue3不同写法
|
20天前
|
存储 缓存 JavaScript
【前端 - Vue】之 Keep-Alive缓存组件使用语法及原理解析,超详细!
【前端 - Vue】之 Keep-Alive缓存组件使用语法及原理解析,超详细!
|
11月前
|
前端开发
前端学习笔记202305学习笔记第二十九天-React keep alive原理之2
前端学习笔记202305学习笔记第二十九天-React keep alive原理之2
50 0
|
11月前
|
前端开发
前端学习笔记202306学习笔记第四十八天-react-admin marmelab之8
前端学习笔记202306学习笔记第四十八天-react-admin marmelab之7
35 0