ly2011 / blog

前端学习笔记
https://ly2011.github.io/blog
122 stars 12 forks source link

react如何支持类似 vue keep-alive的功能 #142

Open ly2011 opened 5 years ago

ly2011 commented 5 years ago

react 本身不会支持这样的特性

前言

基本用react开发入门阶段的同学,在使用列表组件然后进入详情并返回,或者其他类似场景时,很羡慕vue有直接的缓存特性。

实现

react 本身不会支持这样的特性,你可以通过两种方式实现这样的需求:

基于组件设计

将其数据的保存提高到一个父级组件,不会因为生命周期影响。或者用 redux,mobx的方案将其存储。在大佬的观点中,页面的状态都可以用数据来记录。

基于样式控制

在我们常规的思考中,都是页面跳转组件销毁来实现组件的切换,其实你可以简单的通过组件的显示隐藏来控制组件的展示,这样这个保存问题本来就不存在,因为组件没有进入到销毁周期。

参考文档

  1. facebook/react#12039
AielloChan commented 4 years ago

Try https://github.com/AielloChan/KeepAliveRoute