javascript - Svelte Tabs - 不要重新加载/销毁数据
问题描述
我正在使用此处描述的苗条标签组件:
https://svelte.dev/repl/8e68120858e5322272dc9136c4bb79cc?version=3.5.1
在两个选项卡中,我有以下苗条的模板代码:
<TabPanel>
<Filter/>
<div id='to-filter' class='scroll-container'>
{#each value.items as item, i}
<Item
itemFilter={item.name}
itemDay={item.itemDay}
itemMonth={item.itemMonth}
itemYear={item.itemYear}
itemCity={item.itemCity}
itemCountry={item.itemCountry}
itemVenue={item.venue}
itemLink={item.link}
itemDotw={itemDatesOnly[i].itemDotw}
/>
{/each}
</div>
</TabPanel>
每次我单击选项卡在数据之间切换时,似乎都会重新加载或重建它。如何调整选项卡组件,使其不会每次都破坏数据?
解决方案
替换TabPanel.svelte中的以下代码块
{#if $selectedPanel === panel}
<slot></slot>
{/if}
像这样:
<div hidden={$selectedPanel !== panel}>
<slot></slot>
</div>
这将确保所有当前未激活的选项卡面板都获得一个hidden
属性,使它们对用户不可见,但它们将存在于 DOM 中。
这应该可以防止您的嵌套组件被重新渲染,因为当您在选项卡之间切换时它们不会被破坏和重新安装。
推荐阅读
- python - 如何将下载的 pdf 文件存储到 Mongo DB
- python - 将字符串连接到从另一个数据帧映射的 MultiIndex 级别
- angularjs - 角度材料布局指令不起作用
- apache-camel - 使用 Apache camel 读取 xml 文件并将其发送到休息服务
- imagemagick - 如何在imagick中实现像翘曲一样的Photoshop
- ios - 使用 UIGraphicsPDFRenderer 创建 PDF 时添加页脚,如“y 页 x”
- node.js - 如何在 Heroku 上部署 reactJS + nodeJS 应用程序?
- django - 如何修复 uWSGI 内部路由?
- java - 带有 NTLM 身份验证的 Spring WebClient
- vue.js - framework7 vue简单项目中路由'/'的参考索引/home/主视图