之前,我們提到了vue可以解析雙大括號中的語法,資料繫結——},以及,列表渲染——v-for。在這一章中,我們將詳細說明資料的幾種繫結/渲染方式。
之前一章中我們提到過,此處,我們通過**,進行簡單回顧。
}
補充
我們說過,在雙大括號中的語法變數能夠被vue解析。事實上,雙大括號中還能夠放表示式,常規表示式都能夠被解析。
下面舉幾個例子來說明
①}
}
②三目運算}
這句**的意思是:是否存在a,如果a存在,那麼列印「a存在」,否則,列印「a不存在」。
}
如果a為null,undefined,0,nan,''等這些值的時候,那麼列印出的結果為「a不存在」。
此處的原理是:資料型別的轉換。
單向資料繫結中msg的資料只能顯示,但是不能改變,通過雙向資料繫結v-model,我們可以在頁面中,人為的改變其中的資料,並且這樣的改變是同步的。
v-model 指令可以在表單 及 元素上建立雙向資料繫結,它負責監聽使用者的輸入事件以更新資料。
在v-model中,寫入你要繫結的值的模型。
比如,我們要改變頁面中msg顯示的hello world,那麼我們就可以這樣寫,v-model="msg"。
我們要記住,只有表單元素及元素可以進行雙向資料繫結。
下面通過具體例子來說明:
}
這裡我們要理清思路:div中}的值,是從我們構建的vue物件中的data中尋找到的。也就是說:我們可以改變表單元素的值,這個值會去改變data中msg的值,然後data中msg的值改變之後,上面div中}的值也會發生改變。所以這種形式,我們稱為雙向資料繫結。
v-for,列表渲染之前也提到過,它是根據一組陣列的選項列表進行渲染。
下面我們通過簡單的**例子來回顧
條件渲染的表示式的返回值是「布林型別」,並且與if-else迴圈語句相似。
下面來看一下幾種條件渲染的指令:
v-if指令中的值可以是我們自己定義在data中的值或者表示式。
表示式,如:"math.random() > 0.5",這種返回值為布林型別的就可以。
如果返回值為「true」,那麼v-if中的內容會被顯示;反之,它不會被顯示。
下面來測試一下:
歡迎您
v-else必須與v-if或者v-else-if配合使用,否則它將不會被識別。
它的意思是,如果v-if的返回值為「false」,那麼它將顯示v-else中的內容。
下面我們來測試一下:
歡迎您
您未登陸
v-else-if,充當v-if的「else-if」部分,可連續使用。
它也必須緊跟在v-if之後,無法單獨使用。
下面測試一下:
abc
not a/b/c
v-show的返回值也為布林型別,它用來控制**所示的檢視是否顯示。
但與v-if不同的是:帶有 v-show 的元素始終會被渲染並保留在dom中,只是改變css中的display屬性。
下面來測試一下:
顯示
下面引用一段官方文件中的關於v-if與v-show區別的話。
v-if vs v-show
v-if 是「真正」的條件渲染,因為它會確保在切換過程中條件塊內的事件***和子元件適當地被銷毀和重建。
v-if 也是惰性的:如果在初始渲染時條件為假,則什麼也不做——直到條件第一次變為真時,才會開始渲染條件塊。
相比之下,v-show 就簡單得多——不管初始條件是什麼,元素總是會被渲染,並且只是簡單地基於 css 進行切換。
一般來說,v-if 有更高的切換開銷,而 v-show 有更高的初始渲染開銷。因此,如果需要非常頻繁地切換,則使用 v-show 較好;如果在執行時條件很少改變,則使用 v-if 較好。
我們先來看一下以下**
按鈕
此時,我們有乙個問題:如何讓data中title的值顯示到button中?
原先我們是這麼寫的:
按鈕讓title的值在滑鼠懸停到button上時,作為提示顯示出來。
但這並不是我們所期望的,我們希望懸停時顯示的值不是寫死的。
這時,我們可以用v-bind來給它繫結屬性。
v-bind可以動態地繫結乙個或多個特性,或乙個元件prop到表示式(prop之後會在元件中講到)。
它的語法形式是這樣的:v-bind:屬性名="(定義在data中的)變數"
所以上面的**可以這樣變一下:
按鈕
當然,它還可以其他特性:
1)樣式屬性的繫結(通過style)
}
2)樣式屬性的繫結(通過class)
}}
3)style樣式屬性中傳入物件
}}
此處講解的只是基礎內容,如果想要詳細了解,可以檢視vue.js官方教程文件: Vue2 X的入門學習
由於前幾天跟那位技術聊了一會,深感自己目前所學知識的淺薄以及實戰經驗的缺失。今天初步了解了一下前端的vue.js 時間不長,只是看了一些基本內容,肯定也是做不了什麼大專案的,這裡回憶一下所學知識。1.引入vue 此處利用script直接引用,另外呢,vue官網是給了很多教程的,對新手是很友好的 官網...
vue2 x學習筆記(一)
使用vue開發專案已經過了一段時間了,對其中的很多東西還是一知半解,於是想要系統學習一下。主要內容是參照官方中文 然後加上一些自己的理解與批註。什麼是vue.js vue 讀音 vju 類似於view 是一套用於構建使用者介面的漸進式框架。與其它大型框架不同的是,vue被設計為可以自底向上逐層應用。...
vue2 x知識總結
data data data data 逆轉訊息 data methods data 現在我們為每個 todo item 提供 todo 物件 todo 物件是變數,即其內容可以是動態的。我們也需要為每個元件提供乙個 key 稍後再 作詳細解釋。vue.component todo item dat...