首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个div元素具有相同的v-if或一个包装器?

两个div元素具有相同的v-if或一个包装器?
EN

Stack Overflow用户
提问于 2022-01-03 13:12:37
回答 5查看 131关注 0票数 3

在这种情况下,您认为最佳做法是什么:

代码语言:javascript
复制
<div>
   <div v-if="condition-1">Show something</div>
   <div v-if="condition-2">Show something else</div>
   <div v-if="condition-2">Show some other thing</div>
</div>

代码语言:javascript
复制
<div>
   <div v-if="condition-1">Show something</div>
   <div v-if="condition-2">
      <div>Show something else</div>
      <div>Show some other thing</div>
   </div>
</div>

我想这可以归结为您如何评价html元素,对我来说,第一个选项是我更喜欢如何编写它,因为我发现在第二个选项中,额外的div不起结构作用。你会如何主张或反对这两者?

如下面的答案所示,使用模板元素来保存条件是可行的。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2022-01-03 13:25:51

在本例中,我可能会使用template作为2项的包装器。如果这三个项目应该在相同的水平上的话,这就更有意义了。

https://v2.vuejs.org/v2/guide/conditional.html#Conditional-Groups-with-v-if-on-lt-template-gt

代码语言:javascript
复制
<div>
   <div v-if="condition-1">Show something</div>
   <template v-if="condition-2"> <!-- Or v-else -->
      <div>Show something else</div>
      <div>Show some other thing</div>
   </template>
</div>
票数 3
EN

Stack Overflow用户

发布于 2022-01-03 13:24:37

您可以将v-else与虚拟元素template一起使用,它不会破坏html元素的结构:

代码语言:javascript
复制
<div>
   <div v-if="condition-1">Show something</div>
   <template v-else>
      <div>Show something else</div>
      <div>Show some other thing</div>
   </template>
</div> 
票数 3
EN

Stack Overflow用户

发布于 2022-01-03 13:21:34

对我来说,这绝对是代码2。它更清晰和更好的结构,此外,您避免重复(这里:“条件-2”)。另外,至少从我的角度来看,外部用户更容易在第二段代码中找到自己的方法。

此外,我认为您也应该使用嵌套结构,否则这将是非常没有意义的。

对我个人来说,代码1根本不是一种选择。

您还可以在这两种代码中使用v-else。我认为它比v-if这样的两倍聪明一点:

代码语言:javascript
复制
<div>
   <div v-if="condition-1">Show something</div>
   <div v-else>
      <div>Show something else</div>
      <div>Show some other thing</div>
   </div>
</div> 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70566289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档