zoukankan      html  css  js  c++  java
  • vue学习中v-if和v-show一起使用的问题

    v-if和v-show一起使用

    在开发项目过程中v-if和v-show一起使用时,接下面跟着的v-else会在页面上面显示两次 。代码如下:

    <tbody class="sortable" id="sortTable">
          <tr v-show="items.length" v-for="(item,index) in items" :item="item">
                 <td :id="item.objectId">{{index+1}}</td>
                 <td>{{item.number}}</td>
          </tr>
          <tr v-else>
                  <td colspan='2'>暂无数据</td>
         </tr>
    </tbody>
    

    原因其实很简单,根据vue的文档描述:
    当它们都处于同一节点时,v-for 的优先级高于 v-if。这意味着,v-if 将分别在循环中的每次迭代上运行。
    也就是v-if会判断两次。

    当然这样用也有它的好处,当你只想将某些项渲染为节点时,这会非常有用,如下:(以上只渲染 todos 中未完成的项。)

    <li v-for="todo in todos" v-if="!todo.isComplete">
      {{ todo }}
    </li>
    

    如果你的意图与此相反,是根据条件跳过执行循环,可以将 v-if 放置于包裹元素上(或放置于

  • 相关阅读:
    HUST-1350 Trie
    hihocoder-第六十一周 Combination Lock
    hihocoder-1196 : 高斯消元·二
    hihocoder-1195 : 高斯消元·一
    SPOJ
    HDU-5074
    UVALive
    POJ-2195
    UVALive
    POJ-1556
  • 原文地址:https://www.cnblogs.com/feiyu6/p/8530279.html
Copyright © 2011-2022 走看看