1、 v-cloak, v-text, v-html 的基本使用

看一段vue入門代碼

<script>
var vm = new Vue({
            el:'#app',
            data:{
                msg:'hello vanjs',
                msg2:'<h1>你好啊</h1>'
            }
        });
</script>

#app聲明作用域,data中的數(shù)據(jù)綁定需要用在#app下才能生效。
如上vue代碼,在data中給msg變量賦值后,如何綁定到html的元素中呢?

1.插值表達(dá)式 {{ }}

<div id='app'>
  <h1>{{msg}}</h1>
</div>

直接使用插值表達(dá)式,在網(wǎng)絡(luò)不佳或加載慢的時(shí)候會(huì)有閃爍問題(直接顯示 {{msg}}).
如何解決這個(gè)問題呢?可以使用 v-cloakv-text。

2.v-cloak

<h1 v-cloak>{{msg}}</h1>
<style>
    [v-cloak]{
        display: none;
    }
</style>

v-cloak需要配合插值表達(dá)式{{msg}}和css樣式 display: none; 使用。在{{msg}}數(shù)據(jù)未加載時(shí),display: none;起作用,隱藏元素;數(shù)據(jù)加載后,元素的v-cloak屬性消失,元素顯示,且數(shù)據(jù)顯示正常。

3.v-text

<h1 v-text='msg'></h1>

v-text這樣就能解決閃爍問題,似乎比v-cloak更方便。
不同點(diǎn):插值表達(dá)式支持字符拼接。

<h1>...{{msg}}...</h1>

不過這可以通過下面的代碼實(shí)現(xiàn)相同的功能:

<h1>...<span v-text='msg'></span>...</h1>

v-cloakv-text都會(huì)把變量的內(nèi)容直接填充,不會(huì)轉(zhuǎn)義html元素。如果需要轉(zhuǎn)義html元素,需要用到 v-html

4.v-html

<div v-text='msg2'></div>
<div v-html='msg2'></div>

效果圖如下,可以看到兩者區(qū)別。


image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容