Vue.js入门与商城开发实战
上QQ阅读APP看书,第一时间看更新

2.5 v-cloak指令

v-cloak不需要表达式,它会在Vue实例结束编译时从绑定的html元素上移除。v-cloak指令经常和display:none配合使用。

下面我们演示v-cloak指令在Vue中的使用,示例代码如下:


<div id="app" v-cloak>
    <div :style="{'color':color,'fontSize':fontSize+'px'}">文本</div>
    {{message}}
</div>

new Vue({
    el:'#app',
    data:{
        color:'red',
        fontSize:'14',
        message:'文本'
    },
})

注意,这时虽然已经加了指令v-cloak,但实际这时没有起到任何作用,当网速较慢,Vue.js文件还没有加载完时,页面上会显示{{message}}的字样,直到Vue创建实例、编译模板时,DOM才会被替换,所以这个过程中屏幕是有闪动的,需要配合CSS来解决这个问题。代码如下:


<style type="text/css">
    [v-cloak] {
        display: none
    }
</style>

当我们使用webpack和vue-router时,项目中只有一个空的div元素,剩余的内容都是由路由挂载不同组件来完成的,所以不需要v-cloak指令。