react-live-route(react的组件缓存)使用

本文涉及的产品
视频直播,500GB 1个月
简介: react-live-route(react的组件缓存)使用

开题:之前用了react-keeper但是有BUG(scroll的位置不准确,而且onscroll的事件也无法监听到),

所以抛弃之!太坑了,

于是乎,找到了react-live-router,完美解决我们的问题:

下面是是使用方法:

1.下载库:

npm i react-live-route
复制代码
2.在外面的routes中配置使用

不需要改变我们之前的router结构(比如我之前用的react-router-dom)

开箱即用!这也是我选择使用这个库的原因,

import { Route, Redirect, withRouter, Switch } from "react-router-dom";
import NotLiveRoute from "react-live-route";
const LiveRoute = withRouter(NotLiveRoute);
复制代码
3.引入好了之后,可以直接添加在

注意:需要添加在Switch之外,相当于另外单独写了一个缓存的路由组件

需要缓存的路由的component也需要在LiveRoute中引用

{/* 路由重定向 */} { return ; }} /> { console.log("hide hook tiggered"); }} onReappear={(location, match, history, livePath, alwaysLive) => { console.log("reappear hook tiggered"); }} />

复制代码
另外:关于livePath和alwaysLive两个属性的使用:

livePath
livePath 为需要隐藏的页面的路径,具体规则与 react-router 中的 Route 的 path props 一样,使用 component 或 render 来渲染路由对应的组件。

livePath 也可以接受一个由上述规则的 string 类型对象组成的数组,如果数组中的任意一个 string 匹配则 livePath 匹配。例如:["/path1","/path2","/path3/:id"]

LiveRoute 会在从 livePaht 匹配的路径返回 path 匹配的路径时冲渲染,在进入其他不匹配的路径时会直接卸载。

例如:

List 的路由会在 /list 下正常渲染,当进入 /user/:id 时会隐藏,当进入这两者以外的页面时会正常卸载。

import LiveRoute from 'react-live-route'

复制代码
alwaysLive
alwaysLive 和 livePath 差不都,区别是路由的组件会在第一次 mount 后在其他任何路径都不会再被卸载。

例如:Modal 页面在第一次正常渲染之后,进入路径不匹配的页面时隐藏,而在 Modal 路径匹配时更新渲染。

import LiveRoute from 'react-live-route'

复制代码
注意存在的一个BUG:使用了react-live-route 路由缓存之后,再使用import lazy懒加载引入路由 会造成bug (缓存的路由 和其它的路由同时存在)

大概的开箱使用说明就这么多 具体请参考git仓库里面的说明:https://github.com/fi3ework/react-live-route/blob/master/docs/README-zh.md

作者: Bill 本文地址: http://biaoblog.cn/info?id=1622616240000

版权声明: 本文为原创文章,版权归 biaoblog 个人博客 所有,欢迎分享本文,转载请保留出处,谢谢!

相关文章
|
2月前
|
缓存 JavaScript 搜索推荐
vue中的一个内置组件Keep-Alive的作用及使用方法介绍——缓存不活动的组件实例
vue中的一个内置组件Keep-Alive的作用及使用方法介绍——缓存不活动的组件实例
136 1
|
2月前
|
缓存 移动开发 JavaScript
《vue2进阶篇:路由》第10章:vue-router,包括基础路由、嵌套路由、路由的query参数和params参数、命名路由、router-link的replace属性、编程式路由、缓存路由组件
《vue2进阶篇:路由》第10章:vue-router,包括基础路由、嵌套路由、路由的query参数和params参数、命名路由、router-link的replace属性、编程式路由、缓存路由组件
54 2
|
2月前
|
缓存
vue2进阶篇:vue-router之缓存路由组件
vue2进阶篇:vue-router之缓存路由组件
39 1
|
4月前
|
缓存 JavaScript
Vue学习之--------编程式路由导航、缓存路由组件、新的钩子函数(4)(2022/9/5)
这篇文章介绍了Vue中编程式路由导航的方法,包括使用`$router.push`、`$router.replace`、`$router.forward`、`$router.back`和`$router.go`进行路由跳转和历史记录操作,以及如何利用`<keep-alive>`组件缓存路由组件,和Vue Router新增的两个生命周期钩子`activated`和`deactivated`的用法及其在项目中的应用和测试结果。
Vue学习之--------编程式路由导航、缓存路由组件、新的钩子函数(4)(2022/9/5)
|
3月前
|
缓存 监控 Java
造轮子能力大提升:基于SpringBoot打造高性能缓存组件
在快节奏的软件开发领域,"不重复造轮子" 常常被视为提高效率的金科玉律。然而,在某些特定场景下,定制化的高性能缓存组件却是提升系统性能、优化用户体验的关键。今天,我们将深入探讨如何利用SpringBoot框架,从零开始打造一款符合项目需求的高性能缓存组件,分享我在这一过程中的技术心得与学习体会。
74 6
|
5月前
|
缓存 前端开发
react18【系列实用教程】memo —— 缓存组件 (2024最新版)
react18【系列实用教程】memo —— 缓存组件 (2024最新版)
132 0
|
5月前
|
缓存
react18【系列实用教程】useCallback —— 缓存函数 (2024最新版)
react18【系列实用教程】useCallback —— 缓存函数 (2024最新版)
54 0
|
5月前
|
缓存
react18【系列实用教程】useMemo —— 缓存数据 (2024最新版)
react18【系列实用教程】useMemo —— 缓存数据 (2024最新版)
128 0
|
2月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
78 6
|
21小时前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
107 85
下一篇
DataWorks