{{message}} 语法只能在标签内容中使用
{{}}这种语法叫做插值表达式,在插值表达式中可以写任何合法的js表达式
1.使用插件表达式,存在内容闪烁问题,但是v-text没有闪烁问题
<div id="app">
<p>
{{message}}
</p>
<p v-text="message"></p>
</div>
<script src="./js/vue.js"></script>
<script>
let vm = new Vue({
el:"#app",
data:{
message:"hello vue"
}
})
</script>
在上面这段代码中,如果正常输出的话结果是一致的。
但是如果网速比较慢的话,插件表达式则会先在页面上输出
{{message}}
随后才会正常渲染页面,这样的效果对用户体验是不够好的。
2.在插件表达式中使用v-cloak解决闪烁问题
<style>
[v-cloak]:{
display:none;
}
</style>
<div id="app">
<p v-cloak>
{{message}}
</p>
<p v-text="message"></p>
</div>
<script src="./js/vue.js"></script>
我们可以使用v-cloak属性在运行时让其隐藏,但因为在运行结束时vue会自动删除v-cloak属性
所以可以用这种方法来解决闪烁问题
3.插件表达式只会插入内容,不会覆盖原本的内容,而v-text会覆盖掉原先的内容
<div id="app">
<p>
----{{message}}----
</p>
// ----hello vue----
<p v-text="message">1234556</p>
// hello vue
</div>
<script src="./js/vue.js"></script>
<script>
let vm = new Vue({
el:"#app",
data:{
message:"hello vue"
}
})
</script>