主要还是使用 Vue 项目,对 React 理解的比较肤浅。自己也在网上看了各种方案,相对而言都是比较小众,各有各的问题。看到最后,比较好的似乎是 react-activation 组件。
1 zhuxc 2024-01-09 11:45:49 +08:00 写个组件包一下,不展示的隐藏掉就可以了 |
2 chenqt 2024-01-09 17:12:36 +08:00 |
![]() | 3 codehz 2024-01-09 17:55:15 +08:00 可以用 experimental 里的 unstable_Activity |
4 yuheCai 2024-01-10 11:34:31 +08:00 插眼。 我是自己用样式隐藏的方案自己搞了一个,但是总觉得不优雅 |
5 shunia 2024-01-10 13:39:26 +08:00 啊,不是自己写样式吗? visibility 就可以了吧,还可以配合做动画。 不知道 vue 的 keep-alive 能不能自动优化被缓存的组件的重渲染,如果可以的话那确实算是一个卖点。 |
![]() | 6 17681880207 OP @shunia 应该是结合路由的 keep-alive 。 自己写的话,好像没什么好的思路。就是要实现管理页面标签卡的功能,打开的页面会有一个标签卡,然后切换再点击标签卡回来会显示之前的内容(比如之前填写了一半的表单)。 ![]() |
![]() | 7 17681880207 OP |
![]() | 8 vizards 2024-01-10 18:51:52 +08:00 via iPhone 目前(截止 2024.1.10 ) react 还没有真正生产可用的 keep-alive 方案 替代选择: 1. react@experimental 中提供的 unstable_Offscreen ,要求 React 使用 experimental 版本 2. 基于 Suspense 实现的 keep-alive ,比如极简代码实现的 react-freeze ,要求 React 17+ 3. 其他介入 React 渲染流程的 hack 实现,比如你已经搜到的 结合路由的方式基本都是手动劫持 Outlet 组件的渲染,使之可以不被 unmount ,转而使用一个新的属性比如 mode 控制子路由组件是否渲染 |
![]() | 9 17681880207 OP @vizards 感谢大佬的指点!:) |
![]() | 10 herozzm 2024-01-13 16:56:40 +08:00 实际上 vue 的 keep-alive 不好用 |
![]() | 11 17681880207 OP @herozzm 实际上 vue 的 keep-alive 好用的不得了。 |