当前位置: 首页 > news >正文

【Vue】Vue的v-for指令

💭💭

✨: Vue的v-for指令

💟:东非不开森的主页

💜:如果有幸和你一起学习一起进步,那就太棒啦💜💜

Vue的列表渲染

      • 1.1.v-for
      • 1.2.v-for和template
      • 1.3.v-for 数组更新检测
      • ps:splice和slice用法和区别

1.1.v-for

⭐⭐
个人感觉其实就是基础语法的for循环,使用上也差不多,只是形式不同罢了,理解会使用。

使用方法;

  1. 遍历数组
v-for="item in 数组"
v-for="(item, index) in 数组"


对一个数组进行遍历实例:

<div class="item" v-for="item in products">
    <h3 class="title">商品:{{item.name}}</h3>
    <span>价格:{{item.price}}</span>
    <p>秒杀:{{item.desc}}</p>
</div>

const app = Vue.createApp({
        data() {
          return {
            //2.数组 存放的是对象
            products: [
              { id: 11, name: "mac", price: 1000, desc: "99" },
            ],
          };
        },
      });

app.mount("#app");
  1. 遍历对象
    ⭐⭐
    v-for也支持遍历对象,并且支持有一二三个参数:
  • 一个参数: “value in object”;
  • 二个参数: “(value, key) in object”;
  • 三个参数: “(value, key, index) in object”;


v-for同时也支持数字的遍历:
每一个item都是一个数字;

<!-- 2.遍历对象 -->
      <ul>
        <li v-for="(value,key,index) in info">
          {{value}} - {{key}} - {{index}}
        </li>
      </ul>
 
 const app = Vue.createApp({
        data() {
          return {
            info: { bame: "why", age: 18, height: 1.88 },
          };
        },
      });
app.mount("#app");
  1. 遍历字符串
<li v-for="item in 100">{{item}}</li>

1.2.v-for和template

⭐⭐
我们可以使用templ元素来循环渲染一段包含多个元素的内容
为什么这里不使用div呢?

我之前学的时候也没有怎么考虑这个,整理笔记的时候发现了这个问题

原因

  • 如果是div包裹的话,div也会被渲染出来
  • 而使用template包裹的话,template并没有被渲染,相较于使用div会节省一个没有必要的div标签的使用。


其实,template的作用就是模板占位符,可以帮助我们包裹元素,在循环的过程总,template不会被渲染到页面上。

  1. div(如果div没有实际的意义,那么可以使用template替换)
<div v-for="(value,key,index) in infos">
        <span>{{value}}</span>
        <strong>{{key}}</strong>
        <i>{{index}}</i>
</div>
  1. template
<template v-for="(value,key,index) in infos">
        <span>{{value}}</span>
        <strong>{{key}}</strong>
        <i>{{index}}</i>
</template>

1.3.v-for 数组更新检测

⭐⭐
Vue将被侦听的数组的变更方法进行了包裹,所以它们也将会触发视图更新

被包裹过的方法包括

  • push() 数组的后面插入元素
  • pop() 从数组后面删除一个元素
  • shift() 从数组前面删除一个元素
  • unshift() 从数组前面插入一个元素
  • splice() 数组的剪贴、插入、删除
  • sort() 排序
  • reverse() 反转

这些方法的用法其实在js中都是差不多的,用到的时候想起来再查查
替换数组的方法

  • 上面的方法会直接修改原来的数组;
  • 但是某些方法不会替换原来的数组,而是会生成新的数组,比如 filter()、concat() 和 slice();
//并不是完整写法!!!

<li v-for="item in names">{{item}}</li>
names: ["abc", "bac", "aaa", "cbb"],
// 1.直接将数组修改为一个新的数组
this.names = ["cc", "kk"];

// 2.通过一些数组的方法,修改数组中的元素
this.names.push("cc");
this.names.pop();
this.names.splice(2, 1, "cc");
this.names.sort();
this.names.reverse();


ps:splice和slice用法和区别

splice和slice用法和区别

国庆快乐呀

相关文章:

  • 【Hadoop---09】MapReduce:MapReduce概述
  • 黑马旅游网-配置项目(一)
  • 【C语言】continue 关键字
  • java基于springboot+Vue+nodejs的高校网上二手闲置跳蚤市场 element
  • JAVA计算机毕业设计超市进销存管理系统Mybatis+系统+数据库+调试部署
  • Java中ArrayList对象中trimToSize()方法具有什么功能呢?
  • B01-快速入门CSS
  • makefile的基础规则与命名方式
  • 自动驾驶仿真:角雷达坐标系转换详解
  • 教你如何制作浪漫的3D相册表白网站 HTML+CSS+JavaScript
  • 【Shell编程】Shell中for循环、while循环、until循环语句
  • Hadoop集群配置运行
  • 【数模/预测】灰色预测
  • 基于KDtree的电路故障检测算法的MATLAB仿真(包括matlab仿真录像)
  • 奇妙的“黑板擦”字符串
  • [ JavaScript ] 数据结构与算法 —— 链表
  • Koa2 之文件上传下载
  • node和express搭建代理服务器(源码)
  • Phpstorm怎样批量删除空行?
  • Redis在Web项目中的应用与实践
  • Redux系列x:源码分析
  • Solarized Scheme
  • TypeScript迭代器
  • windows下mongoDB的环境配置
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 经典排序算法及其 Java 实现
  • 手写双向链表LinkedList的几个常用功能
  • 首页查询功能的一次实现过程
  • 微信小程序填坑清单
  • 为视图添加丝滑的水波纹
  • 自制字幕遮挡器
  • 积累各种好的链接
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​如何防止网络攻击?
  • # Apache SeaTunnel 究竟是什么?
  • #define、const、typedef的差别
  • #单片机(TB6600驱动42步进电机)
  • #微信小程序:微信小程序常见的配置传旨
  • (C#)一个最简单的链表类
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (ZT)薛涌:谈贫说富
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (转)程序员技术练级攻略
  • (转)关于pipe()的详细解析
  • (转)项目管理杂谈-我所期望的新人
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .Net Winform开发笔记(一)
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法