第六節:教你如何在html中繫結資料
阿新 • • 發佈:2019-01-04
上兩節我們學習了vue的例項知識:第4節:vue例項的4個常用選項第5節:vue 例項的生命週期
提醒一下,這兩節的內容在後面實戰的時候很重要,如果落下的同學可以回去翻看學習,不必害怕難學,這裡沒有難學的教程。這一節,我們學習如何在html上繫結我們例項中的資料。Mustache 語法什麼叫Mustache語法,別被這高大上的叫法嚇到了,其實就是雙大括號{{ }}的寫法,在之前的章節我們就演示過在檢視中顯示我們的資料,這是最常見的繫結方式。有了它,我們可以輕鬆地在檢視顯示我們的資料並及時自動更新,無需手動控制。
文字“前端君”被一個<strong>標籤包住,而我們在展示的是,需要合理地渲染strong標籤,再顯示我們想要展示文字內容。這種情況,用原來的雙大括號{{ }}方式,就不能滿足了,它會渲染成這樣:
<strong>被當作是普通的文字資料被展示了,這並不是我們想要的結果。這個是時候,你需要用vue提供的v-html指令,用法如下:
檢視上的“前端君”有了明顯的加粗效果,說明<strong>標籤發揮了作用,我們通過chrome的開發者工具檢視解析生成後的html文件,name的值,被解析成html標籤,並作為位元組點,插入在<div id=”app”></div>中去。這,就是v-html的作用啦。繫結屬性前面兩個都是控制檢視展示文字內容,有時候,html標籤的屬性也很重要,比如:<a>標籤的href屬性,<img/>標籤的src屬性等。Vue中如何將data中的資料繫結為這些屬性的值呢?還是用雙大括號{{ }}的寫法嗎?當然不是,這裡不需要用雙大括號{{ }},我們用v-bind指令,如下:
v-bind 指令的簡寫對於v-bind指令,如果一個標籤中需要繫結多個屬性的話,就得連續寫多個v-bind。問題是沒問題,但vue為了我們的程式碼更簡潔易看,提供了v-bind指令的簡寫,僅需要冒號。原本完整的寫法:
簡潔的寫法:
此外,需要注意的是:當渲染的屬性值是布林值的時候(true和false),效果就不一樣了,並不是簡單地將true或者false渲染出來,而是當值為false的時候,屬性會被移除。我們試試看:
提醒一下,這兩節的內容在後面實戰的時候很重要,如果落下的同學可以回去翻看學習,不必害怕難學,這裡沒有難學的教程。這一節,我們學習如何在html上繫結我們例項中的資料。Mustache 語法什麼叫Mustache語法,別被這高大上的叫法嚇到了,其實就是雙大括號{{ }}的寫法,在之前的章節我們就演示過在檢視中顯示我們的資料,這是最常見的繫結方式。有了它,我們可以輕鬆地在檢視顯示我們的資料並及時自動更新,無需手動控制。
- <div id="app">{{ name }}</div>
- <script>
- let app = new Vue({
- el:"#app",
- data:{
- name:"前端君"
- }
- });
- </script>
- name:"<strong>前端君</strong>"
文字“前端君”被一個<strong>標籤包住,而我們在展示的是,需要合理地渲染strong標籤,再顯示我們想要展示文字內容。這種情況,用原來的雙大括號{{ }}方式,就不能滿足了,它會渲染成這樣:
<strong>被當作是普通的文字資料被展示了,這並不是我們想要的結果。這個是時候,你需要用vue提供的v-html指令,用法如下:
- <div id="app" v-html="name"></div>
- <script>
- let app = new Vue({
- el:"#app",
- data:{
- name:"<strong>前端君</strong>"
- }
- });
- </script>
- "<strong>前端君</strong>"
檢視上的“前端君”有了明顯的加粗效果,說明<strong>標籤發揮了作用,我們通過chrome的開發者工具檢視解析生成後的html文件,name的值,被解析成html標籤,並作為位元組點,插入在<div id=”app”></div>中去。這,就是v-html的作用啦。繫結屬性前面兩個都是控制檢視展示文字內容,有時候,html標籤的屬性也很重要,比如:<a>標籤的href屬性,<img/>標籤的src屬性等。Vue中如何將data中的資料繫結為這些屬性的值呢?還是用雙大括號{{ }}的寫法嗎?當然不是,這裡不需要用雙大括號{{ }},我們用v-bind指令,如下:
- <div id="app">
- <!--在href前用v-bind:修飾-->
- <a v-bind:href="link">hello官網</a>
- </div>
- <script>
- let app = new Vue({
- el:"#app",
- data:{
- link:"http://hello.com"
- }
- });
- </script>
v-bind 指令的簡寫對於v-bind指令,如果一個標籤中需要繫結多個屬性的話,就得連續寫多個v-bind。問題是沒問題,但vue為了我們的程式碼更簡潔易看,提供了v-bind指令的簡寫,僅需要冒號。原本完整的寫法:
- <!--完整的寫法-->
- <a v-bind:href="link">hello官網</a>
簡潔的寫法:
- <!--縮寫-->
- <a :href="link">hello官網</a>
此外,需要注意的是:當渲染的屬性值是布林值的時候(true和false),效果就不一樣了,並不是簡單地將true或者false渲染出來,而是當值為false的時候,屬性會被移除。我們試試看:
- <div id="app">
- <!--我們用縮寫的語法-->
- <button :disabled="dis_true">
- 我是true
- </button>
- <button :disabled="dis_false">
- 我是false
- </button>
- </div>
- <script>
- let app = new Vue({
- el:"#app",
- data:{
- dis_true:true,
- dis_false:false
- }
- });
- </script>
- <div id="app">{{ num+3 }}</div>
- <script>
- let app = new Vue({
- el:"#app",
- data:{
- num:2
- }
- });
- </script>
- <div id="app">{{ ok ? 'yes':'no' }}</div>
- <script>
- let app = new Vue({
- <div id="app">
- <a :href="'http://'+host">hello官網</a>
- </div>
- <script>
- let app = new Vue({
- el:"#app",