2.9.0 • Published 2 years ago

@alitajs/keep-alive v2.9.0

Weekly downloads
198
License
MIT
Repository
github
Last release
2 years ago

@alitajs/keep-alive

安装

yarn add @alitajs/keep-alive
or
npm i @alitajs/keep-alive

启用方式

配置keepalive:[]开启。

介绍

暂时的 keep alive 实现,有点投机。我们有多个项目用于生产环境中。你需要自行评估风险。采用的方案,是在 layout 自己维护一份组件的显示或者隐藏,通过控制 key 变化,来实现的。等 Umi 官方的 keep alive 推出,我们会在底层采用 Umi 的方案,而保持以下的 api 不变,这意味着,你可以无感优化。

需要使用组件包裹 layout 的最内层。原理就是劫持了 children

配置

比如:

export default {
  plugins: ['@alitajs/keep-alive'],
  keepalive: ['/pathname'],
};

使用

// src/layouts/index.tsx
import { KeepAliveLayout } from 'umi';
const BasicLayout: React.FC = (props) => {
  return (
    <OtherLayout>
      <KeepAliveLayout {...props}>{children}</KeepAliveLayout>
    </OtherLayout>
  );
};

umi 接口

常用方法可从 umi 直接 import。

比如:

import { dropByCacheKey, patchKeepAlive } from 'umi';

接口包含

dropByCacheKey

解除状态保持

// src/pages/list/index.tsx
import { dropByCacheKey } from 'umi';
const Page: React.FC = (props) => {
  return (
    <div
      onClick={() => {
        dropByCacheKey('/list');
      }}
    >
      Click dropByCacheKey
    </div>
  );
};

patchKeepAlive

动态修改 keepalive 配置

// 假如 config 中配置 keepalive: []
import { patchKeepAlive } from 'umi';
const Page: React.FC = (props) => {
  return (
    <div
      onClick={() => {
        //
        patchKeepAlive((config) => {
          // 这里可以获取到最新的 keepalive 配置
          config.push('/list');
          // 操作配置之后返回
          return config;
        });
      }}
    >
      Click patchKeepAlive
    </div>
  );
};

FAQ

1、相关 issues https://github.com/umijs/umi/issues/3091

2.8.37

2 years ago

2.9.0

2 years ago

2.8.32

2 years ago

2.8.36

2 years ago

2.8.35

2 years ago

2.8.33-beta.0

2 years ago

2.8.30

2 years ago

2.8.31

2 years ago

2.8.27-beta.0

2 years ago

2.8.27-beta.1

2 years ago

2.8.27-beta.2

2 years ago

2.8.27-beta.3

2 years ago

2.8.26-beta.2

2 years ago

2.8.29

2 years ago

2.8.28

2 years ago

2.8.27

2 years ago

2.8.25

2 years ago

2.8.23

3 years ago

2.8.21

3 years ago

2.8.24

3 years ago

2.8.19

3 years ago

2.8.18

3 years ago

2.8.16

3 years ago

2.8.15-alpha.3

3 years ago

2.8.15

3 years ago

2.8.15-alpha.0

3 years ago

2.8.15-alpha.2

3 years ago

2.8.15-alpha.1

3 years ago

2.8.14

3 years ago

2.8.13-alpha.1

3 years ago

2.8.13

3 years ago

2.8.12

3 years ago

2.8.11

3 years ago

2.8.12-alpha.0

3 years ago

2.8.10-alpha.0

3 years ago

2.8.9

3 years ago

2.8.7-alpha.3

3 years ago

2.8.8

3 years ago

2.8.7

3 years ago

2.8.7-alpha.0

3 years ago

2.8.7-alpha.1

3 years ago

2.8.7-alpha.2

3 years ago

2.8.6

3 years ago

2.8.5-bate.1

3 years ago

2.8.4-beta.2

3 years ago

2.8.5

3 years ago

2.8.4

3 years ago

2.8.3-alpha.1

3 years ago

2.8.3-alpha.0

3 years ago

2.8.3

3 years ago

2.8.2

3 years ago

2.8.2-bate.2

3 years ago

2.8.2-beta.1

3 years ago

2.8.1

3 years ago

2.8.0

3 years ago

2.7.9

3 years ago

2.7.6

3 years ago

2.7.5

3 years ago

2.7.4

3 years ago

2.7.3

3 years ago

2.7.0

3 years ago

2.6.16

3 years ago

2.6.14

3 years ago

2.6.10

3 years ago

2.6.7

3 years ago

2.6.8

3 years ago

2.6.6

3 years ago

2.6.5

3 years ago

2.6.3

3 years ago

2.6.2-beta.8

3 years ago

2.6.2-beta.7

3 years ago

2.6.2-beta.6

3 years ago

2.6.2-beta.3

3 years ago

2.6.2-beta.4

3 years ago

2.6.2-beta.2

3 years ago

2.6.2

3 years ago

2.5.20

3 years ago

2.5.17-beta.3

3 years ago

2.5.16-beta.2

4 years ago

2.5.16-beta.0

4 years ago

2.5.16-beta.1

4 years ago

2.5.14

4 years ago

2.5.13

4 years ago

2.5.11

4 years ago

2.5.12

4 years ago

2.5.9

4 years ago

2.5.10

4 years ago

2.5.7

4 years ago

2.5.6-beta.1

4 years ago

2.5.6-beta.0

4 years ago

2.5.5

4 years ago

2.5.4

4 years ago

2.5.3

4 years ago

2.5.3-beta.0

4 years ago

2.5.2

4 years ago

2.5.1

4 years ago

2.5.0

4 years ago

2.4.0

4 years ago

2.3.16

4 years ago

2.3.16-beta.0

4 years ago

2.3.13

4 years ago

2.3.14

4 years ago

2.3.12

4 years ago

2.3.11

4 years ago

2.3.10

4 years ago

2.3.9

4 years ago

2.3.8

4 years ago

2.3.7

4 years ago

2.3.7-beta.1

4 years ago

2.3.6

4 years ago

2.3.5

4 years ago

2.3.4

4 years ago

2.3.3

4 years ago

2.3.2

4 years ago

2.2.9

4 years ago

2.3.0

4 years ago

2.3.0-beta.1

4 years ago

2.3.1

4 years ago

2.2.8

4 years ago

2.2.5

4 years ago

2.2.4

4 years ago

2.2.7

4 years ago

2.2.6

4 years ago

2.2.3

4 years ago

2.2.2

4 years ago

2.2.1

4 years ago

2.2.0

4 years ago

2.1.10

4 years ago

2.1.8

4 years ago

2.1.7

4 years ago

2.1.6

4 years ago

2.1.5

4 years ago

2.1.3-beta.2

4 years ago

2.1.4

4 years ago

2.1.3

4 years ago