vm是什么?
- 是一個(gè)調(diào)度者,監(jiān)聽(tīng)數(shù)據(jù),渲染頁(yè)面
插值表達(dá)式可用來(lái)干什么的?
- 渲染數(shù)據(jù)
v-text使用:
- 更新元素的
textContent
- 只能被使用在元素的屬性節(jié)點(diǎn)上,不能用在元素的內(nèi)容區(qū)域
- 會(huì)覆蓋掉元素之前的內(nèi)容
- 會(huì)把元素內(nèi)部的內(nèi)容都替換掉
- 在網(wǎng)速慢的情況下,存在閃爍的問(wèn)題
v-html使用:
- 更新元素的
innerHTML
, 渲染帶標(biāo)簽的文本
v-bind使用:
- 綁定屬性
v-for使用:
-
渲染數(shù)組
-
v-for="item in arr"
,item
是數(shù)組中的每一項(xiàng),arr
是需要循環(huán)的數(shù)組 -
v-for="(item, index) in arr"
,index
是索引
-
-
渲染對(duì)象
-
v-for="value in obj"
,value
是對(duì)象鍵的值,obj
表示需要遍歷的對(duì)象 -
v-for="(value, key, index) in obj"
,index
表示索引
-
v-for
能夠根據(jù)數(shù)據(jù)的變化自動(dòng)刷新視圖-
注意,以下兩種情況不會(huì)觸發(fā)視圖更新
- 當(dāng)使用數(shù)組的
length
屬性去改變數(shù)組的時(shí)候,不會(huì)觸發(fā)視圖更新 - 使用數(shù)組下標(biāo)(索引)的方式去改變數(shù)組的時(shí)候,也不會(huì)觸發(fā)視圖更新
- 當(dāng)使用數(shù)組的
-
解決上述問(wèn)題
- 使用
Vue.set(arr, index, newVal)
,arr
是需要改變的數(shù)組,index
是數(shù)組里面的項(xiàng),newVal
是改變后的值 Array.prototype.splice()
- 使用
-
:key
-
v-for
必須結(jié)合key
屬性來(lái)使用,它會(huì)唯一標(biāo)識(shí)數(shù)組中的每一項(xiàng),未來(lái)當(dāng)數(shù)組中的那一項(xiàng)改變的時(shí)候,它會(huì)只更新那一項(xiàng) - 好處就是提升性能
- 注意
key
的值唯一,不能重復(fù)
-
v-model使用:
- 雙向數(shù)據(jù)綁定
-
v-model
只能在input
/textarea
/selet
使用
v-on使用: (監(jiān)聽(tīng)DOM
事件)
-
使用方法:
- 在標(biāo)簽的屬性位置寫上
v-on:任意的事件類型="執(zhí)行的函數(shù)"
- 簡(jiǎn)寫:
@任意的事件類型="執(zhí)行的函數(shù)"
(推薦) - 通過(guò)執(zhí)行函數(shù)添加參數(shù)
- 通過(guò)執(zhí)行函數(shù)中添加
$event
參數(shù)傳遞事件對(duì)象,注意只能是$event
,并且不能加引號(hào) - 事件修飾符可以給事件添加特殊功能
.stop
,.prevent
- 可以給和按鍵相關(guān)的事件添加按鍵修飾符 常用的有
.enter
- 在標(biāo)簽的屬性位置寫上
v-if和v-show使用:
v-if
和v-show
指令可以用來(lái)控制元素的顯示和隱藏v-if="布爾值"
,v-show="布爾值"
, 布爾值為true
元素顯示,false
隱藏-
區(qū)別:
-
v-if
通過(guò)控制dom
來(lái)控制元素的顯示和隱藏 -
v-show
通過(guò)控制樣式display:none
來(lái)控制元素的顯示與隱藏
-
-
使用場(chǎng)景區(qū)別
- 涉及到大量
dom
操作的時(shí)候,我們需要使用v-show
- 涉及到異步數(shù)據(jù)渲染的時(shí)候就要使用
v-if
- 涉及到大量