我是一名从jquery转到React的初学者。假设我有三个选项卡。我正在寻找一种方法来延迟加载3个选项卡的内容,以便当我第一次单击Tab1时,仅加载并停留在DOM中的是Tab1的内容(而不是Tab2和Tab3的内容)。当我单击Tab2时,将加载Tab2的内容(而不是Tab3的内容)。当我再次单击Tab1时,原始的Tab1内容将保留在DOM中,而不需要重新加载和重新渲染。
这是代码:
<div className="tab-content">
{/* Tab1 */}
<div hidden={tab1.name !== activeTab ? true : false}>
<tab1.component />
</div>
{/* Tab2 */}
<div hidden={tab2.name !== activeTab ? true : false}>
<tab2.component />
</div>
{/* Tab3 */}
<div hidden={tab3.name !== activeTab ? true : false}>
<tab3.component />
</div>
</div>
它可以工作,但问题在于即使用户从未点击tab2或tab3,所有三个组件(tab1.component,tab2.component和tab3.component)也会同时加载,导致服务器上的处理浪费。
tab2和tab3中的内容都需要在服务器上进行“昂贵”的处理,这就是我想要避免的原因。
谢谢。