v-if和v-for一起使用的几个方法

值得注意的是,在vue2.0中同时使用v-for和v-if的话,v-for会更优先,而在vue3.0中是v-if更加优先。

方法一(推荐):

不带if

<ul>
<li
v-for="(item, index) in list"
:key="index"
>
{{ item.title }}
</li>
</ul>

带if

<ul v-for="(item, index) in list" :key="index">
   <li v-if="item.checked">{{item.title}}</li>
</ul>
  data () {  // 业务逻辑里面定义的数据
    return {
      todo: '',
      list: [{
        title: '111111',
        checked: true
      }, {
        title: '22222',
        checked: false
      }]
    }
  }

方法二(通过计算属性):过滤掉不需要的数据,剩下需要的数据再利用v-for循环遍历取出渲染

<h2>进行中</h2>
<ul>
   <li v-for="(item, index) in todoList" :key="index">
      <input type="checkbox">{{item.title}} ----- <button @click="removeData(index)">删除/button>
   </li>
</ul>
<br>
<h2>已完成</h2>
<ul>
   <li v-for="(item, index) in doneList" :key="index" >
      <input type="checkbox">{{item.title}} ----- <button @click="removeData(index)">删除/button>
   </li>
</ul>
  data () {  // 业务逻辑里面定义的数据
    return {
      todo: '',
      list: [{
        title: '111111',
        checked: true
      }, {
        title: '22222',
        checked: false
      }]
    }
  }

  computed: {
    todoList: function() {
      return this.list.filter(function (item) {
        return item.checked
      })
    },
    doneList: function() {
      return this.list.filter(function(item) {
        return !item.checked
      })
    }
  }

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值