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的图片幻灯展示源码
Jul 15 Javascript
javascript实现图像循环明暗变化的方法
Feb 25 Javascript
jQuery插件jFade实现鼠标经过的图片高亮其它变暗
Mar 14 Javascript
初识Javascript小结
Jul 16 Javascript
基于jquery实现图片上传本地预览功能
Jan 08 Javascript
jQuery实现的可编辑表格完整实例
Jun 20 Javascript
checkbox批量选中,获取选中项的值的简单实例
Jun 28 Javascript
浅谈js中子页面父页面方法 变量相互调用
Aug 04 Javascript
JS实现简易的图片拖拽排序实例代码
Jun 09 Javascript
微信小程序图片选择区域裁剪实现方法
Dec 02 Javascript
用npm安装vue和vue-cli,并使用webpack创建项目的方法
Sep 28 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
Jun 22 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
抓取YAHOO股票报价的类
2009/05/15 PHP
PHP读取ACCESS数据到MYSQL的代码
2011/05/11 PHP
php设计模式 Decorator(装饰模式)
2011/06/26 PHP
php_screw 1.5:php加密: 安装与使用详解
2013/06/20 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
php原生数据库分页的代码实例
2019/02/18 PHP
JavaScript基本概念初级讲解论坛贴的学习记录
2009/02/22 Javascript
jQuery autocomplete插件修改
2009/04/17 Javascript
jquery弹出框的用法示例(一)
2013/08/26 Javascript
node.js中的path.extname方法使用说明
2014/12/09 Javascript
js实现鼠标感应图片展示的方法
2015/02/27 Javascript
JS中的Replace方法使用经验分享
2015/05/20 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
js中DOM三级列表(代码分享)
2017/03/20 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
2017/08/11 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
在Python中使用HTML模版的教程
2015/04/29 Python
在Python的Tornado框架中实现简单的在线代理的教程
2015/05/02 Python
python2.7 mayavi 安装图文教程(推荐)
2017/06/22 Python
Python神奇的内置函数locals的实例讲解
2019/02/22 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
详解python中的线程与线程池
2019/05/10 Python
python命令 -u参数用法解析
2019/10/24 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
卡骆驰新加坡官网:Crocs新加坡
2018/06/12 全球购物
办理护照介绍信
2014/01/16 职场文书
个人总结与自我评价
2014/09/18 职场文书
62句有关感恩节文案(推荐收藏)
2019/11/28 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
发工资啦!教你用Python实现邮箱自动群发工资条
2021/05/10 Python
docker-compose部署Yapi的方法
2022/04/08 Servers