React集成react-activation,实现页面缓存

1 篇文章 0 订阅

安装

yarn add react-activation

demo1

import { KeepAlive, useActivate, AliveScope } from 'react-activation';
function Counter() {
  const [count, setCount] = useState(0)

  return (
    <div>
      count: {count}
      <button onClick={() => setCount((count) => count + 1)}>add</button>
    </div>
  )
}

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

  return (
    <AliveScope>
      <button onClick={() => setShow((show) => !show)}>Toggle</button>
      <div>without {`<KeepAlive>`}</div>
      {show && <Counter />}
      <div>with {`<KeepAlive>`}</div>
      {show && (
        <KeepAlive>
          <Counter />
        </KeepAlive>
      )}
    </AliveScope>
  )
}

demo2
注:umi案例。AliveScope 设置在 layouts/index.tsx下面
在这里插入图片描述

const Area  = () =>{
	return <div>区域管理</div>
}
const AreaAlive = memo(
  ({ location: { pathname } }: API.PagesRouteType) => {
    return (
      <KeepAlive
        name={pathname}
        id={pathname}
        saveScrollPosition="screen"
      >
     	 {/*页面组件*/}
        <Area />
      </KeepAlive>
    );
  },
);
export default AreaAlive;

欢迎留言交流

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值