Vue.js 使用较少的代码在HTML中编写v-if条件

Vue.js 使用较少的代码在HTML中编写v-if条件,vue.js,Vue.js,我需要根据href属性决定是创建还是创建(检查是否转发)。我无法在此发布原始代码,因为其中使用了大量自制组件,因此没有任何意义,但示例如下: <a v-if="href" class="btn" v-on:click="clicked"> //bunch of repetitive code @{{button_label}} </a> <button v-else class="btn" v-on:click="clicked"&g

我需要根据
href
属性决定是创建
还是创建
(检查是否转发)。我无法在此发布原始代码,因为其中使用了大量自制组件,因此没有任何意义,但示例如下:

<a v-if="href" class="btn" v-on:click="clicked">
        //bunch of repetitive code
        @{{button_label}}
</a>
<button v-else class="btn" v-on:click="clicked">
        //bunch of repetitive code
        @{{button_label}}
</button>

但我不确定这是否正确。

在这种情况下,您可以使用


//一堆代码

这允许您根据条件使用不同的组件(或元素)。

在这种情况下,您可以使用


//一堆代码

这允许您根据条件使用不同的组件(或元素)。

只需要是
条件是一个指令,本质上是一个属性。如果我从结束标记中删除条件,它会知道应该使用哪个条件(基于在开始时创建的条件),而另一个从未打开过的条件会导致问题吗?还有,为什么你说我不应该在这些标记中设置类?为什么不用这些重复的代码创建新组件?@niksrbforst point,是的。HTML是分层的。第二点(设置类)-完全没有抓住要点。您没有在结束标记上设置类,这是一个关于错误使用属性的示例。@niksrb,当然,您有单击事件,只要确保单击事件何时触发,如果需要防止的默认行为。对于样式,您可以做任何您想做的事情。
只需要是
条件是一个指令,本质上是一个属性。如果我从结束标记中删除条件,它会知道应该使用哪个条件(基于在开始时创建的条件),而另一个从未打开过的条件会导致问题吗?还有,为什么你说我不应该在这些标记中设置类?为什么不用这些重复的代码创建新组件?@niksrbforst point,是的。HTML是分层的。第二点(设置类)-完全没有抓住要点。您没有在结束标记上设置类,这是一个关于错误使用属性的示例。@niksrb,当然,您有单击事件,只要确保单击事件何时触发,如果需要防止的默认行为。至于造型,你可以做任何你想做的事。好吧,这太棒了!我不知道这件事。谢谢这太棒了!我不知道这件事。谢谢
<a v-if="href" class="btn" v-on:click="clicked">
<button v-else class="btn" v-on:click="clicked">
    //bunch of repetitive code
        @{{button_label}}
</a v-if="href">
</button v-else>
<component 
  :is="href ? 'a' : 'button'" 
  :href="href">
  // bunch of code
</component>