06、如何在html中綁定數(shù)據(jù)

1、Mustache語(yǔ)法



就是雙大括號(hào){{}}的寫(xiě)法,有了它,我們可以在視圖顯示我們的數(shù)據(jù)并及時(shí)自動(dòng)更新,無(wú)需手動(dòng)控制。

<div id="app">{{ name }}</div>
<script>
  let app = new Vue({
    el: '#app',
    data: {
      name: '前端學(xué)習(xí)'
    }
  })

頁(yè)面上就會(huì)顯示——前端學(xué)習(xí)。

2、綁定純html



有時(shí)候有這樣的需求,我們的數(shù)據(jù)包含了一些html的標(biāo)簽代碼,比如:

name: '<strong>前端學(xué)習(xí)</strong>'

文本“前端學(xué)習(xí)”被一個(gè)<strong>標(biāo)簽包住,而我們?cè)谡故镜氖?,需要合理地渲染strong標(biāo)簽,再顯示我們想要展示文本內(nèi)容。這種情況,用原來(lái)的雙大括號(hào){{}}方式,就不能滿(mǎn)足了,他會(huì)渲染成:

<strong>前端學(xué)習(xí)</strong>

這時(shí)候可以用vue提供的v-html指令:

<div id="app" v-html="name"></div>
<script>
  let app = new Vue({
    el: '#app',
    data: {
      name: '<strong>前端學(xué)習(xí)</strong>‘
    }
  })
</script>
效果圖.png

3、綁定屬性



前面兩個(gè)都是控制視圖展示文本內(nèi)容,有時(shí)候,html標(biāo)簽的屬性也很重要,比如:<a> 標(biāo)簽的 href 屬性,<img /> 標(biāo)簽的 src 屬性等。Vue 中如何將 data 中的數(shù)據(jù)綁定為這些屬性的值呢?還是用雙大括號(hào) {{}} 的寫(xiě)法嗎?
當(dāng)然不是,這里不需要用雙大括號(hào) {{}},我們用 v-bind 指令,如下:

<div id="app">
  <!-- 在href前用v-bind:修飾 -->
  <a v-bind:href="link">百度</a>
</div>

<script>
let app = new Vue({
  el: '#app',
  data: {
    link: 'http://www.baidu.com'
  }
})
</script>

在視圖中的 a 標(biāo)簽,我們?cè)?<a> 標(biāo)簽加上 v-bind: 來(lái)修飾 href 屬性,而它的值就是 data 中的屬性 link。我們來(lái)看看解析渲染的 html 頁(yè)面效果。


效果圖.png

標(biāo)簽 <a> 的屬性 href 的值成功地綁定了 data 數(shù)據(jù) link 的值,通過(guò) v-bind 指令,就成功地將數(shù)據(jù)綁定在視圖的標(biāo)簽的屬性中了。
另外 v-bind 有簡(jiǎn)寫(xiě)方式,就僅僅是冒號(hào) :。

<a v-bind:href="link">百度</a>
<a :href="link">百度</a>

4、支持JavaScript表達(dá)式


  • 加減乘除運(yùn)算:
<div id="app">{{ num+3 }}</div>
<script>
 let app = new Vue({
    el:"#app",
    data:{
        num:2
    }
 });
</script>
效果圖.png
  • 三元運(yùn)算符:
<div id="app">{{ ok ? 'yes':'no' }}</div>
<script>
 let app = new Vue({
    el:"#app",
    data:{
        ok:true
    }
 });
</script>
效果圖.png
  • 字符串拼接
<div id="app">
  <a :href="'http://'+host">百度</a>
</div>
<script>
 let app = new Vue({
    el:"#app",
    data:{
        host:'www.baidu.com'
    }
 });
</script>
效果圖.png

注意:

雖然vue支持javascript表達(dá)式運(yùn)算,我們只會(huì)在運(yùn)算比較簡(jiǎn)單的情況下才會(huì)這么玩,當(dāng)運(yùn)算比較繁瑣復(fù)雜的時(shí)候,一定要用vue的computed屬性來(lái)進(jìn)行計(jì)算。

小結(jié)



在視圖綁定數(shù)據(jù)的方法:Mustache語(yǔ)法(雙大括號(hào)語(yǔ)法),綁定純HTML,綁定屬性,支持javascript表達(dá)式的寫(xiě)法,以及表達(dá)式寫(xiě)法和computed區(qū)別。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 本章內(nèi)容:認(rèn)識(shí) Vue.js、數(shù)據(jù)綁定、計(jì)算屬性、內(nèi)置指令 一、初始 Vue.js 1.1 Vue.js 是什么 ...
    了凡和纖風(fēng)閱讀 5,647評(píng)論 0 13
  • 33、JS中的本地存儲(chǔ) 把一些信息存儲(chǔ)在當(dāng)前瀏覽器指定域下的某一個(gè)地方(存儲(chǔ)到物理硬盤(pán)中)1、不能跨瀏覽器傳輸:在...
    萌妹撒閱讀 2,098評(píng)論 0 2
  • 一、了解Vue.js 1.1.1 Vue.js是什么? 簡(jiǎn)單小巧、漸進(jìn)式、功能強(qiáng)大的技術(shù)棧 1.1.2 為什么學(xué)習(xí)...
    蔡華鵬閱讀 3,376評(píng)論 0 3
  • 一、Mustache 語(yǔ)法 最常見(jiàn)的綁定方式,視圖顯示數(shù)據(jù)并及時(shí)自動(dòng)更新,無(wú)需手動(dòng)控制。 釋?zhuān)?頁(yè)面視圖上成功顯示...
    hiddensmile閱讀 7,146評(píng)論 0 1
  • 第一章 Vue概述 what? Vue是實(shí)現(xiàn)UI層的漸進(jìn)式j(luò)s框架,核心庫(kù)關(guān)注視圖層,簡(jiǎn)單的ui構(gòu)建,復(fù)雜的路由控...
    fastwe閱讀 742評(píng)論 0 0