reactjs - React 有类似 Vue 的 keep-alive 元素吗?
问题描述
Vue keep-alive 元素会在返回历史页面时记住页面状态,希望 React 有这样的东西。
解决方案
React 没有这种类型的功能,最近维护者对同一问题的回应非常强烈地表明他们认为这不是一个好主意。但是,同一个线程讨论了一个标准替代方案,即实现您的逻辑,这样您就不会删除/创建组件,而是隐藏和显示它们。例如,如果你做了这样的事情来支持“标签”:
{this.state.activeTab === 1 &&
<MyFirstTabView/>
}
{this.state.activeTab === 2 &&
<MySecondTabView/>
}
then MyFirstTabView will obviously be destroyed when the second tab is selected. 但是,如果您这样做:
<MyFirstTabView className={this.state.activeTab === 1 ? 'active' : ''}/>
<MySecondTabView className={this.state.activeTab === 2 ? 'active' : ''}/>
display: none
并将其与 CSS或规则配对display: block
,它将实现与 Vue 的功能类似的keep-alive
功能。它的效率并不高,但对于标签切换等常见用例来说,它已经很接近了。
推荐阅读
- javascript - 测试具有完整代码覆盖率的简单记录器功能
- android - 如何在使用 adb 通话时打开拨号盘?
- javascript - 通过 Node.js 应用程序将外部来宾添加到 Microsoft Teams 现有组
- vue.js - 在 Vue.js 中使用来自 GSAP 的 Splittext
- reactjs - 为什么我的 if 语句在 React 中总是给出相同的结果?
- apache-kafka - 具有长处理消息和水平扩展的 Kafka 的正确配置是什么
- c# - 如何在不重启浏览器实例的情况下迭代场景中的小黄瓜步骤
- email - 从 SAS 发送带有更改名称的附件的自动电子邮件
- android - 如何访问 Firebase 数据库中动态添加的孩子的孩子?
- python - 我们可以在异步 python 函数中调用 celery delay 或 apply_async