- 博客(12)
- 收藏
- 关注
原创 前端分角色控制权限
后端模型const (RoleAdmin Role = 1 // 管理员RoleViewer Role = 0 // 查看者前端类型0= Viewer,1= Admin层级控制方式位置后端路由级后端接口级中间件特定路由前端页面级检查 + 跳转useEffect前端组件级role === 1条件渲染JSX前端菜单级动态菜单Layout.tsx。
2025-12-22 14:20:46
271
原创 分级树形结构异步加载
指定异步加载函数,当用户点击「待加载节点」的展开箭头时,自动触发 loadData 回调,并传入当前节点的信息(如 key、children 等)。不过在项目中,children不是一开始就写好的,要通过调用api逐层获取,通过onloaddata异步加载。只有当用户点击展开某个节点时,才触发该函数去异步请求 / 加载该节点的子数据,而非初始化时加载全量树形数据。它是解决大数据量树形结构性能问题的关键,尤其适用于层级深、数据量大的场景(如本文中的。icon、type这些不是必须的,
2025-12-10 11:01:21
280
原创 泛型的应用:接口参数定义
后端返回的结构是固定的(code, message, data),变化的只有 data 里的内容。如果在每个接口都重复定义 code 和 message,不仅冗余,而且后期如果要改字段名(例如 message 改为 msg),维护成本极高。TypeScript 泛型(Generics)核心是让代码具备类型复用能力,能编写不绑定具体类型、可适配多种类型的通用逻辑,同时保留类型检查。—— 简单说就是「类型层面的参数化」,类比函数接收值参数,泛型接收「类型参数」。
2025-12-10 10:53:07
266
原创 前端路由保护
系统采用了前端路由级别和后端API级别的双重防护机制,确保即使未登录用户直接输入testcase地址,也无法绕过认证访问受保护的内容,而是会被立即重定向到登录页。这种设计提供了完整的安全保障。
2025-11-27 16:52:21
713
原创 登录过期重定向时 message不显示
由于是单页应用(SPA)内部切换,页面并没有真正刷新,全局的 Message 组件可能(取决于你的 Layout 结构)不会被销毁。但是旧的数据也不会销毁哦,也不好。需求是在登录超时(401)时清除本地缓存返回登录界面(handleLogout)+ message提醒“登录过期,请重新登录”。重定向的速度比message出现的速度快,导致看不到message了。问题:页面直接跳转,重定向前和后都没有message,它去哪里了呢?方法一:人为给重定向包裹一层延时,但是延时会影响体验。
2025-11-27 15:43:57
185
原创 layout溢出到登录界面
(Global Layout),尝试自动包裹所有页面,即使你在路由里写成了兄弟关系。问题:在登录首页会显示layout的内容。解决办法:给layout的文件改名字。的文件,Umi 有时会默认把它当作。在 Umi 中,如果你在。出现这个问题通常是因为。
2025-11-25 13:02:08
158
原创 前端项目运行后报错TypeError: Cannot read properties of null (reading ‘useRef‘)
这个错误通常是由于项目中存在多个React实例导致的"React多实例"问题。根据你的描述, @antv/g6-react-node 依赖中可能包含了一个独立的React版本。思路:不知道为什么react冲突的报错是 useRef,但是解决冲突就可以解决报错了。参考2:cursor。
2025-11-14 10:04:57
227
原创 自用-记录力扣遇到的语法问题
这俩都是变量定义的问题。题解里一般都是给元素/变量定义成 float('inf'),如果让我来想,第一反应是赋空值,这篇文章。range的范围,不写不知道,这是我一直忽略的问题,它是左闭右开的。python语法忘得差不多了,平时几乎都是边搜边写。介绍了,在需要比较大小时,可以对变量初始赋值成正无穷或负无穷。这里只放问题&语法,不放原题,二刷再总结做题思路吧。range(i,j) 相当于 [i,j)。,做题顺序基本按照上面的来。
2024-08-22 01:27:26
273
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅