vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)


Posted in Javascript onApril 20, 2018

在使用vue绑定数据的时候,渲染页面时会出现变量闪烁,例如

<div class="#app">
  <p>{{value.name}}</p>
</div>

在加载的时候会看到

{{value.name}}

在页面出现,过了几秒之后才会渲染数据,在vue中有个指令可以解决这个问题,v-cloak

那么,v-cloak要放在什么位置呢,是不是每个需要渲染数据的标签都要添加这个指令,经过试验发现,v-cloak并不需要添加到每个标签,只要在el挂载的标签上添加就可以,

<div class="#app" v-cloak>
  <p>{{value.name}}</p>
</div>

而且,在css里面要添加

[v-cloak] {
  display: none;
}

这样就可以防止页面闪烁了。

但是有的时候会不起作用,可能的原因有二:

1、v-cloak的display属性被层级更高的给覆盖掉了,所以要提高层级

[v-cloak] {
  display: none !important;
}

2、样式放在了@import引入的css文件中

v-cloak的这个样式放在@import 引入的css文件中不起作用,可以放在link引入的css文件里或者内联样式中

补充:

下面看下Vue 中的 v-cloak 解读

v-cloak 的作用和用法

用法:

这个指令保持在元素上直到关联实例结束编译。和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕。官方API

<div id="app">
  {{msg}}
</div>

HTML 绑定 Vue实例,在页面加载时会闪烁

然后才会出现 加载完成 字样,为了效果更明显,我们可以延后加载 Vue 实例

setTimeout(() => {
  new Vue({
    el: '#app',
    data: {
      msg: 'hello'
    }
  })
},2000)

v-cloak 可以解决这一问题,在 css 中加上

[v-cloak] {
 display: none;
}

在 html 中的加载点加上 v-cloak,就可以解决这一问题

<div id="app" v-cloak>
  {{msg}}
</div>

 Vue1.x 与 Vue2 中 v-cloak 的不同

Vue1 中,允许将 Vue 实例挂载在 body 上,而 Vue2 是不允许的,想对整个页面实例化,需要另外用一个 div 来容纳整个页面内容,对其进行实例化

这样在使用 v-cloak 时,同样需要用到这种方法

 为什么我用的 v-cloak 无效?

在实际项目中,我们常通过 @import 来加载 css 文件

@import "style.css"
@import "index.css"

而 @import 是在页面 DOM 完全载入后才会进行加载,如果我们将 [v-cloak] 写在 @import 加载的 css 文件中,就会导致页面仍旧闪烁。

为了避免这种情况,我们可以将 [v-cloak] 写在 link 引入的 css 中,或者写一个内联 css 样式,这样就得到了解决。

总结

以上所述是小编给大家介绍的vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量) ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Jquery练习之表单验证实现代码
Dec 14 Javascript
javascript四舍五入函数代码分享(保留后几位)
Dec 10 Javascript
Jquery倒计时源码分享
May 16 Javascript
使用jquery.qrcode生成彩色二维码实例
Aug 08 Javascript
javascript中的previousSibling和nextSibling的正确用法
Sep 16 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
Oct 25 Javascript
jquery获取文档高度和窗口高度汇总
Jan 25 Javascript
jQuery简单实现仿京东分类导航层效果
Jun 07 Javascript
检查表单元素的值是否为空的实例代码
Jun 16 Javascript
深入理解Vue生命周期、手动挂载及挂载子组件
Sep 27 Javascript
JavaScript callback回调函数用法实例分析
May 08 Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
Jan 29 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
Apr 20 #jQuery
vue多页面开发和打包正确处理方法
Apr 20 #Javascript
用ES6的class模仿Vue写一个双向绑定的示例代码
Apr 20 #Javascript
Vue写一个简单的倒计时按钮功能
Apr 20 #Javascript
使用Vue如何写一个双向数据绑定(面试常见)
Apr 20 #Javascript
Vue中如何实现proxy代理
Apr 20 #Javascript
React diff算法的实现示例
Apr 20 #Javascript
You might like
php 无限分类的树类代码
2009/12/03 PHP
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
一段实用的php验证码函数
2016/05/19 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
csdn 批量接受好友邀请
2009/02/19 Javascript
javascript插入样式实现代码
2012/02/22 Javascript
js控制frameSet示例
2013/09/10 Javascript
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
显示今天的日期js代码(阳历和农历)
2014/09/30 Javascript
JS继承用法实例分析
2015/02/05 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
2016/12/02 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
2017/02/19 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
js使用原型对象(prototype)需要注意的地方
2017/08/28 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
javascript数据类型中的一些小知识点(推荐)
2019/04/18 Javascript
javascript实现抢购倒计时程序
2019/08/26 Javascript
layui实现数据表格自定义数据项
2019/10/26 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
Python selenium 三种等待方式解读
2016/09/15 Python
python三方库之requests的快速上手
2019/03/04 Python
python 实现 hive中类似 lateral view explode的功能示例
2020/05/18 Python
美国折扣香水网站:The Perfume Spot
2020/12/12 全球购物
交通局领导班子群众路线教育实践活动对照检查材料思想汇报
2014/10/09 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
2016年先进教师个人事迹材料
2016/02/26 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
读《解忧杂货店》有感:请相信一切都是最好的安排
2019/11/07 职场文书
python 实现mysql自动增删分区的方法
2021/04/01 Python
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
2021/05/14 Python
nginx请求限制配置方法
2021/07/09 Servers