Vue v-for、v-if、v-show常见问题

文章讨论了Vue中v-for遍历对象时的顺序问题,指出如果没有iterator接口,可能因浏览器差异导致顺序不一致。还解释了v-if和v-for的优先级以及v-show与v-if在条件渲染和性能上的不同。建议避免在同一个元素上同时使用v-if和v-for。
摘要由CSDN通过智能技术生成

vue使用v-for遍历对象时,是按照什么顺序遍历的?如何保证顺序?

会先判断对象是否存在iterator接口,如果有循环执行next()方法。

没有iterator的情况下,会调用Object.Keys()方法,在不同的浏览器中,js引擎不能保证输出的顺序是一致的。

如果想要保证输出的顺序一致,可以将对象放进数组中,作为数组的元素。

v-if和v-for同时出现的优先级问题?

v-for的优先级比v-if高。所以同时出现的时候,先给v-for套一层template作为父级元素,再在父级元素进行v-if判断

<template v-if>

    <div v-for></div>

<template>

v-if和v-for同时使用在同一个标签上的表现?

当v-if与v-for一起使用时,v-for具有比v-if更高的优先级,这意味着v-if将分别重复运行于每个v-for循环中。

所以,不推荐v-if和v-for同时使用。如果v-if和v-for一起用的话,vue中的的会自动提示v-if应该放到外层去

v-show 与 v-if 有什么区别?

v-if 是真正的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建;也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。

v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 的 “display” 属性进行切换。

所以,v-if 适用于在运行时很少改变条件,不需要频繁切换条件的场景;v-show 则适用于需要非常频繁切换条件的场景。

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值