1、Vue.js v-cloak指令
1)、使用背景
- 当网络受阻或页面加载完毕而没有初始化得到 Vue 实例时,DOM 中的 {{}} 则会展示出来,此时就会出现页面闪烁的问题。
- 为了防止此现象,可以使用 CSS 配合 Vue v-cloak 指令实现获取 Vue 实例前的隐藏。和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕。
2)、语法
[v-cloak] {
display: none;
}
<div v-cloak>
{{ message }}
</div>
- 以上代码,当
<div>
未编译结束时,<div>
标签不会显示,只有<div>
编译完成时,<div>
标签才会被正常显示出来。
2、使用实例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>v-cloak指令</title>
</head>
<style type="text/css">
[v-cloak]{
display: none;
}
</style>
<body>
<div id="app">
<p v-cloak>{{ msg }}</p>
</div>
<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
var app = new Vue({
el:"#app",
data:{
msg: "弱网络环境下没有使用v-cloak指令,使用{{}}会闪烁,可以和 CSS 配合实现隐藏未编译的 Mustache 标签直到实例准备完毕!!!"
}
})
</script>
</body>
</html>