六、Vue学习 条件渲染 列表渲染

本文详细介绍了Vue.js中的条件渲染和列表渲染。重点讲解了如何使用v-if和v-for进行条件控制和数据迭代,包括在template中、组件上的用法,以及如何处理数组更新和过滤排序。同时,通过示例展示了计算属性和方法在列表渲染中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、条件渲染

  • 注意 不要将 v-if 和v-for 放在同一个元素使用
    可用 template 修正:
<template v-for="todo in todos" :key="todo.name">
  <li v-if="!todo.isComplete">
    {{ todo.name }}
  </li>
</template>

二、列表渲染

2.1 数组更新检测

官方参考文档

2.1.1 会改变数组

  • push()
  • pop()
  • shift()
  • unshift()
  • splice()
  • sort()
  • reverse()

2.1.2 显示过滤/排序后的结果

2.1.2.1 计算属性实现
<li v-for="n in evenNumbers" :key="n">{{ n }}</li>
data() {
  return {
    numbers: [ 1, 2, 3, 4, 5 ]
  }
},
computed: {
  evenNumbers() {
    return this.numbers.filter(number => number % 2 === 0)
  }
}
2.1.2.2 计算属性不适用的情况下,如下:
<ul v-for="numbers in sets">
  <li v-for="n in even(numbers)" :key="n">{{ n }}</li>
</ul>
data() {
  return {
    sets: [[ 1, 2, 3, 4, 5 ], [6, 7, 8, 9, 10]]
  }
},
methods: {
  even(numbers) {
    return numbers.filter(number => number % 2 === 0)
  }
}

2.1.3 在template 中 使用v-for

    <ul>
      <template v-for="i in stu">
        <li>{{ i }}</li>
        <li>111111111111</li>
      </template>
    </ul>
    
  data() {
    return {
      stu: ["xxx1", "xxx2", "xx3"],
    };
  },

输出结果:
在这里插入图片描述

2.1.4 在组件上使用 v-for

官方参考网址,里面的一个实例 值得学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值