【发布时间】:2021-09-11 20:29:14
【问题描述】:
我刚学vue 3,遇到以下问题。我使用只提供tab headers 而没有content panels 的标签库。所以,我的解决方案如下:
<myTabs/><!-- < -- headers -->
<div v-for="tab in tabs" ><!-- < -- content -->
<keep-alive>
<component v-if="tab.active" :is="tab.component"></component>
</keep-alive>
</div>
标签是这样创建的:
const tabs: Array<Tab> = reactive<Array<Tab>>([])
所以,我有选项卡,对于内容面板,我迭代选项卡并仅显示活动选项卡内容。该解决方案的唯一问题是,当更改标签的顺序(交换后)时,内容的顺序!=标签的顺序。
例如,我有两个标签 (0,1)。交换标签后的顺序是(1,0),但内容的顺序仍然是(0,1)。因此,当我激活 tab1 时,我会看到 tab0 的内容。谁能帮我解决它?
【问题讨论】:
-
您可以将
tabs设为computed 属性,该属性返回标签的有序列表。
标签: javascript typescript vue.js