v-for和v-if的问题
当v-for和v-if在同一个元素标签上时,v-for优先级高于v-if,也就是说在v-for的每次循环运行中都会调用v-if的判断,所以会出现问题,vue官网推荐将v-if移到父元素。
例子:
testData: {name: 'TESTOBJECT', id: 10,data: [1.67, 1.33, 0.98, 2.21] }<ul><li v-for="value in testData"><div id="test" v-if="Array.isArray(value)" v-for="item in value">{{item}}</div><div id="test1" v-else>{{value}}</div></li> </ul>
以上代码输出了10变TESTOBJECT,10遍10,最后依次输出1.67 1.33 0.98 2.21。
上边代码执行原理如下:
this.value.map(function(item){if(Array.isArray(value)){return item; // item依次为T、 E、 S、 T、 O、 B、 J、 E、 C、 T}else{return value; // TESTOBJECT }})
遍历testData的所有value(即li中的v-for),当拿到testData的第一个元素TESTOBJECT时,执行div中的v-for,此时div的value为TESTOBJECT,div的item依次对应T、 E、 S、 T、 O、 B、 J、 E、 C、 T这10个元素,于是循环了10次,每一次都判断当前元素是否是array,很显然每次判断都是字符串,于是便打印出10个TESTOBJECT。10个数字的情况类似,不过由于是遍历一个数字,那么数字大小就影响循环的次数,如果改为5,则运行显示5遍5。
vue官网推荐将v-if移到父元素,如ul中,先检查,后循环遍历。不要用在同一个元素上:
<ul><li v-for="value in testData"><div v-if="Array.isArray(value)"><div v-for="item in value">{{item}}</div></div><div v-else>{{value}}</div></li></ul>// TESTOBJECT // 10 // 1.67 // 1.33 // 0.98 // 2.21
原文:http://www.fly63.com/article/detial/4385
转载于:https://www.cnblogs.com/xjy20170907/p/11510628.html
v-for和v-if的问题相关推荐
- vscode 终端 进入node_安装了Node.js 从VScode 使用node -v 和 npm -v等命令却无效
前言 最近写TypeScript需要安装.配置Node.js环境,楼主是使用的安装包所以环境变量都是自动就配好了(如果是下载的zip压缩包解压后要自己配置到系统环境变量中).打开系统终端敲入命令 no ...
- POJ2762 Going from u to v or from v to u? 强连通+缩点
题目链接: poj2762 题意: 给出一幅单向图.问这张图是否满足 随意两点ab 都能 从a到达b 或 从b到达a 题解思路: 推断一幅图是否满足弱连通 首先想到的是将图中的 强连通分量(能互 ...
- 事务的四大特性、事务处理开始与结束、v$transactio、 v$LOCK
数据库事务的四大特性:ACID 事务的4大特性(ACID): 原子性(Atomicity):事务是数据库的逻辑工作单位,它对数据库的修改要么全部执行,要么全部不执行.一致性(Consistemcy): ...
- poj Going from u to v or from v to u? 强联通缩点+拓扑排序(或搜索)
方法一 #include <stdio.h> #include <string.h> #include <iostream> #include <algori ...
- 【POJ - 2762】Going from u to v or from v to u?(Tarjan缩点,树形dp 或 拓扑排序,欧拉图相关)
题干: In order to make their sons brave, Jiajia and Wind take them to a big cave. The cave has n rooms ...
- v$sql、v$sqlarea 、v$sqltext
分享: ------------------------------- v$sql.v$sqlarea .v$sqltext 这三个视图都可以用于查询共享池中已经解析过的SQL语句及其相关信息. V$ ...
- 安装了Node.js 从VScode 使用node -v 和 npm -v等命令却无效
前言 最近写TypeScript需要安装.配置Node.js环境,楼主是使用的安装包所以环境变量都是自动就配好了(如果是下载的zip压缩包解压后要自己配置到系统环境变量中).打开系统终端敲入命令 no ...
- POJ 2762Going from u to v or from v to u?(强联通 + 缩点 + 拓扑排序)
[题意]: 有N个房间,M条有向边,问能否毫无顾虑的随机选两个点x, y,使从①x到达y,或者,②从y到达x,一定至少有一条成立.注意是或者,不是且. [思路]: 先考虑,x->y或者y-> ...
- POJ 2762 Going from u to v or from v to u? (判断单连通)
http://poj.org/problem?id=2762 题意: 给出有向图,判断任意两个点u和v,是否可以从u到v或者从v到u. 思路: 判断图是否是单连通的. 首先来一遍强连通缩点,重新建立新 ...
- POJ-2762 Going from u to v or from v to u?
题目大意: 给出一个有向图,这个图,是否存在任意两点a,b可达,这里的任意两点a,b可达是说,只要从a能到b或者只要能从b到a就算是可达的. 解题思路: 先求出这个图的强连通分量,然后缩点建图,只要这 ...
最新文章
- 深度分析蔡徐坤的百万流量数据,揭底哪些是假的!
- 十一:外观模式详解(Service,action与dao)
- 每日一皮:就像我的编程,虽然过程不咋地,结果还不错...
- 白话Elasticsearch06- 深度探秘搜索技术之手动控制全文检索结果的精准度
- springboot创建parent_Spring Boot 开篇:快速入门
- 代码chaid_[转载]经典决策树之SAS实现--CHAID
- 深入浅出组合逻辑电路(1)
- 苹果系统安装python环境_如何在mac下配置python虚拟环境
- 猿宵节正确打开方式:你要的大数据、机器学习、神经网络…已配齐
- oracle as sydba,Oracle数据库之SQL*Plus工具使用 sqlplus / as sysdba登录
- parallel(parallelStream)并发问题
- BZOJ1123: [POI2008]BLO
- linux系统服务器配置snmptrap步骤
- 游戏音效只是简单的改原素材吗?
- Android--NFC读写
- 计算机审计质量论文,如何保证计算机审计的质量
- GEO TCGA公共数据挖掘培训
- 管理之旅(01)游学阿里
- 旧稿 - 我与张树新共事创业的年代 - 张树新马云
- 脚本启动shipyard