Vue基礎系列(三)——Vue模板中的數據綁定語法



 

寫在前面的話:


文章是個人學習過程中的總結,為方便以后回頭在學習。


文章中會參考官方文檔和其他的一些文章,示例均為親自編寫和實踐,若有寫的不對的地方歡迎大家和我一起交流。

 


 

VUE基礎系列目錄

《VUE基礎系列(一)——VUE入坑第一篇》

《VUE基礎系列(二)——VUE中的methods屬性》

《VUE基礎系列(三)——VUE模板中的數據綁定語法》

《VUE基礎系列(四)——VUE中的指令(上)》

《VUE基礎系列(五)——VUE中的指令(中)》

 


 

 

一.前言

前面《VUE基礎系列(一)——VUE入坑第一篇》中我們講過使用vue雙花括號插值法將data中的數據綁定到模板中(這個實際上可以叫做文本方式的數據綁定)。這篇文章中我們將總結一下vue中其他形式的數據綁定語法。在這篇總結中會有一些vue指令的知識點,可以結合下一篇文章《VUE基礎系列(四)——VUE中的指令(上)》一起看。

二.文本

  文本的數據綁定方式前面已經介紹過,這里直接寫一個示例做說明。

#示例代碼

<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>vue模板中的數據綁定語法</title>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="box">
        <h1>{{msg}}</h1>
    </div>
    <script type="text/javascript">
        var vm = new Vue({
            el: '#box',
            data:{
                msg:'我是一段包含html片段的字符<span>hello</span>'
            }
        });
    </script>
</body>
</html>

 

#界面效果

 

 

 

 

 

 

 

三.原生html

  上面的文本數據綁定,當文本中包含html片段時,html片段已字符串的形式原封不動的展示到了模板中。不會將文本中的html片段解析出來。而vue的v-html指令,就可以將html片段進行解析。

#基本語法

<tag v-html='data中的屬性'></tag>

 

#示例

<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>vue模板中的數據綁定語法</title>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="box">
        <h1 v-html='msg'></h1>
    </div>
    <script type="text/javascript">
        var vm = new Vue({
            el: '#box',
            data:{
                msg:'我是一段包含html片段的字符<span>hello</span>',
            }
        });
    </script>
</body>
</html>

 

#界面效果

 

  可以看到模板中<h1 v-html='msg'></h1> 這種寫法,vue會將msg中的html字符解析成DOM節點,並且將msg解析后完整的內容插入到h1元素中。

 

備注:

1.當我們改變msg的值后,v-html綁定的值在模板中也會同步更新。

2.可以在構造函數外部加入下面的js代碼去驗證,兩秒后頁面上原本的內容會變成"我是新的msg"。

setTimeout(function(){
  vm.$data.msg = '我是新的msg';
},2000);

 

四.將數據綁定到元素的屬性上

將數據綁定到元素的屬性上也是需要結合vue的v-bind指令才能實現。

#基本語法

<tag v-bind:屬性名='data中的屬性'></tag>

 

#示例

<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>vue模板中的數據綁定語法</title>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <!-- v-bind -->
    <div id="box">
        <span v-bind:id='desc'>我是一段文字</span>
    </div>
    <script type="text/javascript">
        var vm = new Vue({
            el:'#box',
            data: {
                desc:'text'
            }
        })
    </script>
</body>
</html>

 

#界面效果

 

   可以看到,data中desc的值已經成功的設置為<span>元素的id屬性上。

 

  備注:

  1.當我們改變desc的值后,v-bind綁定的值在模板中也會同步更新。

  2.可以在構造函數外部加入下面的js代碼去驗證,兩秒后查看span元素的id會變成new-text。

setTimeout(function(){
  vm.$data.desc = 'new-text';
},2000);

 

五.總結

  1.使用雙花括號可以將數據以文本的形式綁定到模板中。數據更新模板同步更新

  2.使用v-html指令綁定數據時,可以將數據中的html片段解析為DOM節點。同樣數據更新,模板同步更新。

  3.使用v-bind可以將數據綁到元素的屬性上。同樣數據更新,模板同步更新。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM