Vue2 x學習二 資料渲染

2021-09-13 19:42:03 字數 2834 閱讀 6241

之前,我們提到了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...