解决列表渲染时闪烁的问题

在使用Vue进行数据渲染时遇到列表闪烁问题,通过添加v-cloak指令来解决。然而,错误地将v-cloak放在v-for循环内导致效果不佳。正确的做法是将v-cloak放在外层元素,配合特定CSS样式,确保在数据加载完成前隐藏未渲染的内容。修正后,闪烁问题得到解决。

<style>
    [v-cloak] {  /*为了解决列表渲染变量闪烁的问题,需要配合el挂载的标签使用,在el挂载的标签上加上v-cloak*/
        display: none;
    }
</style>

<div id="boxVue" v-cloak></div>

今天在使用vue进行数据渲染的时候发现当我不停的按F5刷新的时候出现了{{message}}的情况。经过多方查找我知道了要解决这个问题需要添加v-cloak指令,这时有一个问题困扰了我很久,我明明按照大家所说的加了v-for为什么还是没有用。后来折腾了很久才发现原因,先不说为什么,看看代码来: 

在html中:

?
1
2
3
< ul v-for = "item in person" >
   < li v-cloak>{{item.name}}</ li >
</ ul >

在CSS中:

?
1
[v-cloak]:{diapsly: none ;}

在script中:

?
1
2
3
4
5
6
7
8
9
10
var vm = new Vue({
   el: '#myapp' ,
   date:{
     person:[
       {name: 'zhangsan' },
       {name: 'lisi' },
       {name: 'wangwu' }
     ]
   }
})

最开始是没有css样式,当我发现我不断的刷新的时候页面上会出现{{item.name}}一闪而逝,这时我在li上面添加了v-cloak指令,并添加了css样式。此时,我发现还是会有闪烁,我发现他根本没有执行css的样式。 
现在大家应该都猜到原因了吧,因为我是在for循环里面添加的v-cloak。之前查的资料是直接使用。

css:

?
1
[v-cloak]:{ display : none }

html:

?
1
< div v-cloak>{{message}}</ div >

看到别人的写法以后我就以为是直接在要渲染的该标签添加指令,这也导致了我的v-cloak一直没有起到作用。最后,我把v-cloak添加到了v-for上,一切终于变得正常了。

?
1
2
3
< ul v-for = "item in person" v-cloak>
   < li >{{item.name}}</ li >
</ ul >

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值