vue渲染普通文本有两种方式,{{}}和v-text:
<template>
<div class="app">
<div>{{ text }}</div>
<div v-text="text"></div>
</div>
</template>
<script>
export default {
name: '',
components: {},
data() {
return {
text: 'hi,我是文本!'
}
},
最后结果是:hi,我是文本!
在使用{{}}展示或者是更新页面数据时,若网速较慢,可能会出现一个过渡现象,用户先看到表达式:如:{{text}},然后在看到data中的值(hi,我是文本!),也就是闪烁问题。
解决闪烁问题,可以使用v-cloak指令,然后为其设置css样式为:display:none;
[v-cloak] {
display: none;
}
有时添加后还是会出现闪烁问题,可能是v-cloak 的display属性被优先级别高的样式覆盖所导致,此时可以在添加一个!important
[v-cloak]{
display: none !important;
}
解释一下v-text和{{}}的区别:
v-text会覆盖掉元素中原本的内容,{{}}只会替换自己这个占位符;
<template>
<div>
<div>会被{{ text }}覆盖吗</div>
<div v-text="text">会被覆盖吗</div>
</div>
</template>
输出结果为:
{{}}、v-text与v-html的区别:
{{}}和v-text向页面渲染普通文本,v-html向页面输出html。
v-html和v-text都会覆盖掉元素中原本的内容。