一文带你详细了解Vue中的v-for
目录
- v-for
- v-set
- 重绘和回流
- 虚拟DOM
- computed计算属性
- 总结
v-for
作用: 列表渲染,所在标签结构,按照数据数量,循环生成。指令写在谁身上,就循环创建谁
1.语法:
v-for = "(值变量,索引变量) in 目标结构" :key = 索引变量
v-for = "值变量 in 目标结构 :key = 索引变量"
目标结构:可以是数组,对象,字符串
2.数组方法如果修改了原数据就会更新 页面,如果没有修改,则不会,但可以重新赋值给变量让你页面更新
3.v-for中的key作用:在更新的时候:
- 有key,按照key比较,key设置为index:等于没设,就地复用
- 无key,就地更新
4.v-for中key
唯一不重复的字符串或者数值,数组中的id
key在使用过程中,有id用id,无id用索引
5.key的好处
可以提高更新的性能
v-set
作用:因为vue是数据驱动页面的,所以修改原数组中可以使用this.arr[0]='测试'
但是,由于官方vue2特有的bug,导致这样修改原数组失效,虽然数组确实改变了,但是页面直接没更新,如果需要这样修改数据,就需要$set
方法来修改
方法:
this.$set(修改数组,索引,‘修改的内容')
重绘和回流
- 重绘:元素的颜色/透明度发生变化
- 回流:元素的几何信息(宽度/位置)发生变化
- 回流是把结构重新画出来,重绘给你上色
- 回流一定触发重绘,但重绘不一定会引起回流
虚拟DOM
含义:本质上是一个js对象,保存DOM关键信息
好处:提高DOM更新的性能,不频繁操作真实的DOM,在内存中找到变化部分,再更新真实DOM相应属性或内容(打补丁)
computed计算属性
语法:定义在computed中和data(){}并齐
事例:
computed:{ totalPrice(){//计算属性名 set(val){ //在计算机属性被修改时执行 //val是计算属性赋的值 } get(){ //get在计算机属性被调用(访问)时执行 //必须return一个结果 } return this.count*this*this.price//返回运算结果 } }
缓存:计算属性,基于依赖项的值进行缓存,依赖的变量不变,都直接从缓存取结果(带缓存)
总结
到此这篇关于Vue中v-for的文章就介绍到这了,更多相关Vue的v-for内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
vue使用v-for实现hover点击效果
使用Vue来实现鼠标悬停效果.可以使用事件处理器v-on指令(简写为:@)来完成.为标签绑定mouseenter以及mouseleave事件即可. hover是css中的选择器,用于选择鼠标指针浮动在上面的元素.所以a:hover可用于设置当鼠标悬停在超链接之上时超链接的样式. 在当今比较流行的前端框架里 vue react 都是以数据驱动的形式来修改元素的状态, 而并非是之前使用jq来操作dom元素, 这样效率也是非常低的, 像vue, react 都是以虚拟dom的形式渲染页面, 以数据的变
-
vue2.0使用v-for循环制作多级嵌套菜单栏
使用v-for循环生成一个多级嵌套菜单栏,只要你学会了这个方法,几乎所有的菜单栏都可以实现了. 方法 <div class="level-one" v-if="obj.level == 1" v-for="obj in bar1"><a>{{obj.title}}</a> <div class="level-two" v-if="obj1.parentId == obj.id
-
vue中 v-for循环的用法详解
1.v-for循环普通数组 ①创建vue对象 ② 循环数据 结果: 2.v-for循环对象数组 ① 创建vue实例对象 ② 循环对象数组 结果: 3.v-for循环对象 ①创建vue对象实例 ②循环对象 结果: 4.v-for循环数字 ①创建vue对象实例 ②循环数字 结果: 5.v-for中key的使用方式 ①创建vue对象实例 注意:push()方法一般是添加到数组的最后的位置:unshift()方法是往最前面的位置添加. ②循环 注意: v-for循环的时候,key属性只能使用number
-
浅析vue中常见循环遍历指令的使用 v-for
vue中循环遍历使用的指令是v-for 1.v-for遍历数组 (1)value in arr 遍历数组中的元素 (2)(value,index) in arr 遍历数组中的元素和数组下标 运行代码: <body> <div class="box"> <ul> <li v-for="value in arr">{{value}}</li><br> <li v-for="(valu
-
vue中v-for循环给标签属性赋值的方法
1.给每个按钮添加class的属性值以及icon图标属性值,通过v-for实现自动添加样式,发现属性值无法显示,切记在属性前加上v-bind <html> <head> <meta charset="utf-8"> <title>v-for在线测试实例</title> <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"> &
-
浅谈vue.js中v-for循环渲染
这两天学习了Vue.js 感觉v-for循环渲染这个地方知识点挺多的,而且很重要,所以,今天添加一点小笔记. 一.简介 vue.js 的循环渲染是依赖于 v-for 指令,它能够根据 vue 的实例里面的信息,循环遍历所需数据,然后渲染出相应的内容.它可以遍历数组类型以及对象类型的数据,js 里面的数组本身实质上也是对象,这里遍历数组和对象的时候,方式相似但又稍有不同. (一)遍历对象 <div id="app"> <ul> <li v-for="
-
vue.js指令v-for使用及索引获取
1.v-for 直接上代码. 示例一: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <title></title> <
-
Vue中控制v-for循环次数的实现方法
在Vue中的遍历方法v-for控制循环次数的方法可以通过以下两种方法 1.截取循环的数据 v-for="(item,index) in domainList.slice(0, 2)" 用这样的方法可以截取循环的数据长度,从而控制循环的次数 2.通过v-if来控制 v-for="(item,index) in domainList" v-if="index<3" 在标签下紧跟v-if来进行控制,这里是用索引来进行控制的,所以循环的时候记得把i
-
Vue.js常用指令汇总(v-if、v-for等)
有时候指令太多会造成记错.记混的问题,所以本文在记忆的时候会采用穿插记忆的方式,交叉比对,不易出错. 本文主要讲了一下六个指令: v-if//v-show//v-else//v-for//v-bind//v-on 1. v-if 条件渲染指令,根据其后表达式的bool值进行判断是否渲染该元素: eg: HTML: <div id="example01"> <p v-if="male">Male</p> <p v-if=&qu
-
一文带你详细了解Vue中的v-for
目录 v-for v-set 重绘和回流 虚拟DOM computed计算属性 总结 v-for 作用: 列表渲染,所在标签结构,按照数据数量,循环生成.指令写在谁身上,就循环创建谁 1.语法: v-for = "(值变量,索引变量) in 目标结构" :key = 索引变量 v-for = "值变量 in 目标结构 :key = 索引变量" 目标结构:可以是数组,对象,字符串 2.数组方法如果修改了原数据就会更新 页面,如果没有修改,则不会,但可以重新赋值给变量让
-
一文带你搞懂Java中Get和Post的使用
目录 1 Get请求数据 1.1 Controller 1.2 Service 1.3 Application 1.4 Postman 2 Post接收数据 2.1 Controller 2.2 Service 2.3 Application 2.4 Postman 3 Post发送数据 3.1 Controller 3.2 Service 3.3 ResponseResult 3.4 Config 3.5 Application 3.6 Postman 1 Get请求数据 项目地址:https
-
一文带你搞懂Python中的文件操作
目录 一.文件的编码 二.文件的读取 2.1 open()打开函数 2.2 mode常用的三种基础访问模式 2.3 读操作相关方法 三.文件的写入 写操作快速入门 四.文件的追加 追加写入操作快速入门 五.文件操作综合案例 一.文件的编码 计算机中有许多可用编码: UTF-8 GBK Big5 等 UTF-8是目前全球通用的编码格式 除非有特殊需求,否则,一律以UTF-8格式进行文件编码即可. 二.文件的读取 2.1 open()打开函数 注意:此时的f是open函数的文件对象,对象是Pytho
-
一文带你深入了解Java中延时任务的实现
目录 概述 JAVA DelayQueue DelayQueue的实现原理 DelayQueue实现延时队列的优缺点 时间轮算法 时间轮的具体实现 进阶优化版时间轮算法 时间轮算法的应用 小结 redis延时队列 mq延时队列 rocketmq延时消息 rocketmq的精准延时消息 总结 概述 延时任务相信大家都不陌生,在现实的业务中应用场景可以说是比比皆是.例如订单下单15分钟未支付直接取消,外卖超时自动赔付等等.这些情况下,我们该怎么设计我们的服务的实现呢? 笨一点的方法自然是定时任务去数
-
一文带你熟悉Go语言中函数的使用
目录 函数 函数的声明 Go 函数支持变长参数 匿名函数 闭包 init 函数 函数参数详解 形式参数与实际参数 值传递 函数是一种数据类型 小结 函数 函数的英文单词是 Function,这个单词还有着功能的意思.在 Go 语言中,函数是实现某一特定功能的代码块.函数代表着某个功能,可以在同一个地方多次使用,也可以在不同地方使用.因此使用函数,可以提高代码的复用性,减少代码的冗余. 函数的声明 通过案例了解函数的声明有哪几部分: 定义一个函数,实现两个数相加的功能,并将相加之后的结果返回. f
-
一文带你搞懂Java中的递归
目录 概述 递归累加求和 计算1 ~ n的和 代码执行图解 递归求阶乘 递归打印多级目录 综合案例 文件搜索 文件过滤器优化 Lambda优化 概述 递归:指在当前方法内调用自己的这种现象. 递归的分类: 递归分为两种,直接递归和间接递归. 直接递归称为方法自身调用自己. 间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法. 注意事项: 递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出. 在递归中虽然有限定条件,但是递归次数不能太多.否则也会发生栈内存溢出. 构造方
-
一文带你弄懂Java中线程池的原理
目录 为什么要用线程池 线程池的原理 ThreadPoolExecutor提供的构造方法 ThreadPoolExecutor的策略 线程池主要的任务处理流程 ThreadPoolExecutor如何做到线程复用的 四种常见的线程池 newCachedThreadPool newFixedThreadPool newSingleThreadExecutor newScheduledThreadPool 小结 在工作中,我们经常使用线程池,但是你真的了解线程池的原理吗?同时,线程池工作原理和底层实
-
一文带你搞懂Java中Synchronized和Lock的原理与使用
目录 1.Synchronized与Lock对比 2.Synchronized与Lock原理 2.1 Synchronized原理 2.2 Lock原理 3.Synchronized与Lock使用 Synchronized Lock 4.相关问题 1.Synchronized与Lock对比 实现方式:Synchronized是Java语言内置的关键字,而Lock是一个Java接口. 锁的获取和释放:Synchronized是隐式获取和释放锁,由Java虚拟机自动完成:而Lock需要显式地调用lo
-
一文带你了解C语言中的动态内存管理函数
目录 1.什么是动态内存管理 2.为什么要有动态内存管理 3.如何进行动态内存管理 3.1 malloc 3.2 free 3.3 calloc 3.4 realloc 总结 1.什么是动态内存管理 平时我们写代码,一种非常常见的写法是: int a = 0; // 创建一个变量 int arr[10] = {0}; // 创建一个数组 当你创建变量a的时候,其实是向内存中申请了4个字节的空间来存放一个整数.而当你创建数组arr的时候,是向内存中申请了40个字节的空间来存放10个整数.当你这么写
-
一文带你搞懂JS中六种For循环的使用
目录 一.各个 for 介绍 1.for 2.for ... in 3.for ... of 4.for await...of 5.forEach 6.map 二.多个 for 之间区别 1.使用场景差异 2.功能差异 3.性能差异 三.for 的使用 for 循环在平时开发中使用频率最高的,前后端数据交互时,常见的数据类型就是数组和对象,处理对象和数组时经常使用到 for 遍历,因此下班前花费几分钟彻底搞懂这 5 种 for 循环.它们分别为: for for ... in for ... o
随机推荐
- VirtualBox 错误:This kernel requires the following features not present on the CPU
- requirejs + vue 项目搭建详解
- 通过关闭10种服务 提高Windows XP系统安全性的图文教程
- Java编程利用socket多线程访问服务器文件代码示例
- 详解Swift model 解析的两种方法
- bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
- excel操作之Add Data to a Spreadsheet Cell
- golang中strconv.ParseInt函数用法示例
- MySQL数据库 1067错误号的解决方法
- Android 资源 id详解及的动态获取
- 云网广告中的代码,提示出错,大家找找
- 教你用python3根据关键词爬取百度百科的内容
- 基于Android设计模式之--SDK源码之策略模式的详解
- C#从foreach语句中枚举元素看数组详解
- 巧妙使用ADSL分流技术
- Java+opencv3.2.0实现人脸检测功能
- Android编程处理窗口控件大小,形状,像素等UI元素工具类
- SharePoint Server 2019新特性介绍
- 微信小程序实现单选选项卡切换效果
- 微信小程序实现多个按钮的颜色状态转换