vue入門 條件和列表渲染

2021-09-25 02:29:27 字數 1843 閱讀 9472

v-if指令,很容器理解就是乙個條件判斷,當條件成立時渲染;另外,還能夠使用v-else-ifv-elsev-else元素必須緊跟在帶v-if或者v-else-if的元素的後面,否則它將不會被識別。bc

根據上邊的例子,v-if 主要就是決定元素的顯示和隱藏;還有另外乙個相同作用的指令v-show,他們的區別在於,v-show 解析之後,相當於在元素上新增了display:none的樣式,而 v-if 則是該部分的元素不會渲染,也就是說,審查元素時看不到該部分的元素。

如果需要頻繁切換,使用 v-show 會更好,因為 v-if 每次條件成立時,會重新渲染。

v-for 渲染陣列資料,使用item in items的語法,遍歷陣列。

另外,在迴圈中,我們還能夠使用(item, index) in items,index 是陣列中的索引;除了遍歷陣列外,還能夠遍歷物件(value, key) in items

vue 官方文件建議,在使用 v-for 時,為每個元素指定乙個唯一的 key 值。通常,我們使用陣列的 index 作為 key 值,但是,其實並不推薦這麼做。

使用v-for更新已渲染的元素列表時,預設用就地復用策略;列表資料修改的時候,他會根據 key 值去判斷某個值是否修改,如果修改,則重新渲染這一項,否則復用之前的元素;

vue 的雙向繫結,是監測到資料變化之後,做出對應的響應事件;vue 包含一組觀察陣列的變異方法(改變原始陣列的方法),主要如下:

除了改變原始陣列,有些方法,會返回乙個新陣列,例如:filter(),concat() (拼接陣列),slice() (提取字串),vue 也能夠監聽到陣列的變化。

注意vue 無法檢測到一下陣列的變化:

使用索引設定陣列的值vm.items[indexofitem] = newvalue修改陣列長度vm.items.length = newlength

解決辦法:

問題二:

除了陣列的變化,有些檢測不到之外,vue 不能檢測物件屬性的新增或刪除

var vm =

newvue(}

)// `vm.a` 現在是響應式的

// `vm.b` 不是響應式的

vm.b =

2

解決辦法:

var vm =

newvue(}

})

使用vue.set:

如果需要設定多個屬性, 可以使用 object.assign (物件的拷貝),但是應該將兩個物件的屬性建立乙個新的物件

// 反例

object.

assign

(vm.userprofile,

)// 正確做法

vm.userprofile = object.

assign

(, vm.userprofile,

)

v-for除了能夠遍歷 data,還可以是 method 中的乙個方法;

v-for 和 v-if 還能夠作用在 template 上;

v-for 和 v-if 同時使用時,v-for 優先順序更高;但一般不推薦同時使用。

1 4 Vue 條件渲染和列表渲染

1.條件渲染 v if v else if v else v show v if status 1 當status為1 顯示該行p v else if status 2 當status為2 顯示該行p v else status 3 當status為3 顯示該行p v show status 1 當...

Vue 模板渲染 條件渲染 列表渲染

當獲取到後端資料後,我們會把它按照一定的規則載入到寫好的模板中,輸出成在瀏覽器中顯示的 html,這個過程就稱之為渲染。而 vue.js 是在前端 即瀏覽器內 進行的模板 渲染。1.前後端渲染對比 前端渲染 的優勢 是在瀏覽器裡利用 js 把資料和 html 模板進行組合,業務分離,後端只需要提供資...

vue 模板 計算 偵聽 條件渲染 列表渲染

通常是根據已有的 data 資料,計算生成新的資料,把這種結構叫做計算屬性,計算屬性在 vue 的選項物件中使用computed屬性來設定,例 注意,通常對於計算屬性,不會重新用 賦值。計算屬性與方法的區別 計算屬性的值會被快取,只有當其所依賴的資料發生變化後,才會重新計算計算屬性的值,計算完畢後繼...