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 :nth-child前有无空格的区别分析
Jul 11 Javascript
EasyUI实现二级页面的内容勾选的方法
Mar 01 Javascript
JS设置cookie、读取cookie、删除cookie
Apr 17 Javascript
JavaScript的类型、值和变量小结
Jul 09 Javascript
使用three.js 画渐变的直线
Jun 05 Javascript
全面解析Bootstrap中tab(选项卡)的使用方法
Jun 06 Javascript
最实用的jQuery分页插件
Oct 09 Javascript
AngularJS ionic手势事件的使用总结
Aug 09 Javascript
JS 中document.write()的用法和清空的原因浅析
Dec 04 Javascript
详解vue 数组和对象渲染问题
Sep 21 Javascript
vue项目中使用vue-i18n报错的解决方法
Jan 13 Javascript
手把手带你搭建一个node cli的方法示例
Aug 07 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 ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
javascript jQuery $.post $.ajax用法
2008/07/09 Javascript
IE图片缓存document.execCommand(&quot;BackgroundImageCache&quot;,false,true)
2011/03/01 Javascript
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
2014/03/07 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
2014/12/08 Javascript
jQuery中dequeue()方法用法实例
2014/12/29 Javascript
javascript中eval和with用法实例总结
2015/11/30 Javascript
深入浅析Node.js 事件循环
2015/12/20 Javascript
jquery对象和DOM对象的任意相互转换
2016/02/21 Javascript
javascript replace()第二个参数为函数时的参数用法
2016/12/26 Javascript
JS实现的简单图片切换功能示例【测试可用】
2017/02/14 Javascript
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
vue.js做一个简单的编辑菜谱功能
2018/05/08 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
2020/08/07 Javascript
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
matplotlib savefig 保存图片大小的实例
2018/05/24 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
2019/02/11 Python
Django 路由控制的实现
2019/07/17 Python
Python Selenium库的基本使用教程
2021/01/04 Python
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
学生实习自我鉴定
2013/10/11 职场文书
园林设计师自荐信
2013/11/18 职场文书
通信研究生自荐信
2014/02/01 职场文书
一年级学生评语大全
2014/04/21 职场文书
幼儿园爱国卫生月活动总结
2014/06/30 职场文书
2014预备党员党课学习心得范文
2014/07/08 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
2015年学校后勤工作总结
2015/04/08 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
2016年重阳节慰问信
2015/12/01 职场文书
青年文明号创建口号大全
2015/12/25 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书
请假条应该怎么写?
2019/06/24 职场文书