当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的问题相关推荐

  1. vscode 终端 进入node_安装了Node.js 从VScode 使用node -v 和 npm -v等命令却无效

    前言 最近写TypeScript需要安装.配置Node.js环境,楼主是使用的安装包所以环境变量都是自动就配好了(如果是下载的zip压缩包解压后要自己配置到系统环境变量中).打开系统终端敲入命令 no ...

  2. POJ2762 Going from u to v or from v to u? 强连通+缩点

    题目链接: poj2762 题意: 给出一幅单向图.问这张图是否满足   随意两点ab 都能 从a到达b 或  从b到达a 题解思路: 推断一幅图是否满足弱连通 首先想到的是将图中的 强连通分量(能互 ...

  3. 事务的四大特性、事务处理开始与结束、v$transactio、 v$LOCK

    数据库事务的四大特性:ACID 事务的4大特性(ACID): 原子性(Atomicity):事务是数据库的逻辑工作单位,它对数据库的修改要么全部执行,要么全部不执行.一致性(Consistemcy): ...

  4. poj Going from u to v or from v to u? 强联通缩点+拓扑排序(或搜索)

    方法一 #include <stdio.h> #include <string.h> #include <iostream> #include <algori ...

  5. 【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 ...

  6. v$sql、v$sqlarea 、v$sqltext

    分享: ------------------------------- v$sql.v$sqlarea .v$sqltext 这三个视图都可以用于查询共享池中已经解析过的SQL语句及其相关信息. V$ ...

  7. 安装了Node.js 从VScode 使用node -v 和 npm -v等命令却无效

    前言 最近写TypeScript需要安装.配置Node.js环境,楼主是使用的安装包所以环境变量都是自动就配好了(如果是下载的zip压缩包解压后要自己配置到系统环境变量中).打开系统终端敲入命令 no ...

  8. POJ 2762Going from u to v or from v to u?(强联通 + 缩点 + 拓扑排序)

    [题意]: 有N个房间,M条有向边,问能否毫无顾虑的随机选两个点x, y,使从①x到达y,或者,②从y到达x,一定至少有一条成立.注意是或者,不是且. [思路]: 先考虑,x->y或者y-> ...

  9. POJ 2762 Going from u to v or from v to u? (判断单连通)

    http://poj.org/problem?id=2762 题意: 给出有向图,判断任意两个点u和v,是否可以从u到v或者从v到u. 思路: 判断图是否是单连通的. 首先来一遍强连通缩点,重新建立新 ...

  10. POJ-2762 Going from u to v or from v to u?

    题目大意: 给出一个有向图,这个图,是否存在任意两点a,b可达,这里的任意两点a,b可达是说,只要从a能到b或者只要能从b到a就算是可达的. 解题思路: 先求出这个图的强连通分量,然后缩点建图,只要这 ...

最新文章

  1. 深度分析蔡徐坤的百万流量数据,揭底哪些是假的!
  2. 十一:外观模式详解(Service,action与dao)
  3. 每日一皮:就像我的编程,虽然过程不咋地,结果还不错...
  4. 白话Elasticsearch06- 深度探秘搜索技术之手动控制全文检索结果的精准度
  5. springboot创建parent_Spring Boot 开篇:快速入门
  6. 代码chaid_[转载]经典决策树之SAS实现--CHAID
  7. 深入浅出组合逻辑电路(1)
  8. 苹果系统安装python环境_如何在mac下配置python虚拟环境
  9. 猿宵节正确打开方式:你要的大数据、机器学习、神经网络…已配齐
  10. oracle as sydba,Oracle数据库之SQL*Plus工具使用 sqlplus / as sysdba登录
  11. parallel(parallelStream)并发问题
  12. BZOJ1123: [POI2008]BLO
  13. linux系统服务器配置snmptrap步骤
  14. 游戏音效只是简单的改原素材吗?
  15. Android--NFC读写
  16. 计算机审计质量论文,如何保证计算机审计的质量
  17. GEO TCGA公共数据挖掘培训
  18. 管理之旅(01)游学阿里
  19. 旧稿 - 我与张树新共事创业的年代 - 张树新马云
  20. 脚本启动shipyard

热门文章

  1. python 装饰器(可以接收多个值)
  2. MySQL 修改字段
  3. 学习中碰到的一些优化工具包和库
  4. 如何防止app接口被别人调用
  5. 【Photoshop】批处理与快捷批处理
  6. PAT:1032. Sharing (25) AC
  7. 如何去掉子窗体的关闭按钮.右上角的那个X
  8. ios 自定义圆环进度条
  9. guassdb200 single node deployment
  10. MongoTemplate 使用aggregate聚合查询