我有一个导航,它使用计算属性来填充li元素。
<ul v-for="link" in links">
<li>
{{ link.name }}
</li>
</ul>
computed: {
links(){
return [
{
name: 'Link1',
},
{
name: 'Link2',
},
{
name: 'Link3',
},
]
}
}
现在,如果我想其中一个链接有额外的html元素呢?例如,让我们说link2链接到一个邮箱,我想有一个跨度旁边的名称,计数电子邮件的数量。
例如:
<span class="email-counter">{{ messageCount ? `${messageCount.length}` : '' }}</span>
我怎样才能只对link2应用这个方法而不影响其他的链接呢?如果我把它放在li标记中,它当然会显示在所有列表元素中。
2条答案
按热度按时间omhiaaxx1#
你可以使用v-if来检查是否有正确的链接:
yjghlzjz2#
当我遇到这样的事情时,我总是发现把事情抽象一点,让父母保持整洁会更好。因此,不要在模板中添加大量逻辑,而是尽量将尽可能多的逻辑添加到原始列表中,并添加其他组件。
在这种情况下,我可能会创建一个组件来显示单个链接,并执行类似于下面的操作。它使一切都更干净,并使未来更容易做出进一步的更改。
在这个例子中,我使用了Vue 3和脚本设置,因为这是我的默认设置,但在Vue 2中的想法是一样的。