指令是一些特殊的標記,給html新增一些原來沒有的功能
指令一:v-model
>
type
='text'
v-model
='num'
>
type
='checkbox'
v-model
='ischecked'
>
div>
const vm =
newvue(}
)
雙向資料繫結的原理底層通過 object.defineproperty()來實現的
- object.defineproperty()是es5提出的乙個方法,無法shim(相容)ie8以下版本
例:
type
='text'
class
='txt'
>
let obj =
let tmp
const txt = document.
queryselector
('.txt'
)//oninput事件 只有input的value值發生改變就會觸發
txt.
oninput
=function()
// 第乙個引數:給哪個物件新增或者設定屬性
// 第二個引數:要新增什麼屬性
// 第三個引數:屬性的修飾符 物件格式
object.
defineproperty
(obj,
'name',,
// 獲取會呼叫get
get:
function()
})
指令二、v-text & v-htmlv-text 相當於 innertext 不識別html標籤
v-html 相當於innerhtml 識別html標籤
指令三、v-bindv-bind 動態資料繫結(單向)
因為html的屬性不能使用}來動態讀取資料,所以使用v-bind
例:
>
v-bind:href
='href'
>
clicka
>
//v-bind可以簡寫為 :
:href
='href'
>
clicka
>
div>
const vm =
newvue(}
)
操作樣式>
.bgc
.fzstyle
>
>
//傳統方式
class
='red fz'
>
乙個**標題h3
>
//vue動態
:class=''
>
乙個**標題h3
>
//新增行內樣式
:style=''
>
h3>
body
>
const vm =
newvue(}
)
指令四、v-on用於註冊事件、繫結事件。可簡寫為@
事件中讀取data屬性需要使用修飾符this,標籤中可直接使用,
函式中的this指的就是vm例項
事件物件
- 如果事件函式沒有() @click='fn' 在事件處理函式裡直接接受乙個形參e即可
- 如果事件函式有() @click='fn()' 使用$event欄位
>
v-on:click
='clickbtn'
>
clickbutton
>
@click
='clickbtn'
>
clickbutton
>
@click
='fn($event,123)'
>
clickbutton
>
div>
const vm =
newvue(,
methods:,fn
(e,num)}}
)
指令五、v-for遍歷資料,根據資料裡的每一項,建立(指令所在的)對應的標籤
- 遍歷陣列 v-for='(item,index) in list' item:元素 index:索引
- 遍歷物件 v-for='(item,key) in obj' item:屬性值 key:鍵名/屬性名
- 遍歷數字 v-for=『item in 5』 item: 數字1開始
使用key值:
- 如果陣列裡的元素不是物件,而且不改變順序,key可以取索引 :key='index'
- 如果陣列裡的元素是物件,key取物件裡的固定屬性,並且唯一
例:
//要跟key值 不然會報錯
v-for
='(item,key) in obj'
:key
='key'
>
hello }h1
>
const vm =
newvue(}
})
指令六、v-if & v-show實現元素的隱藏和顯示
1. 相同點:都能實現切換元素的顯示和隱藏
2. 不同點:
- v-if 顯示:建立節點 隱藏:移除節點
- v-show 顯示:display:block 隱藏:display:none
3. 使用場景:
- v-if通過不斷的建立節點、移除節點來實現顯示與隱藏,效能不好
- 切換顯示與隱藏頻率低的用v-if
- 切換顯示與隱藏頻率高的用v-show
例:
v-if
='isshow'
>
我是v-ifh1
>
v-show
='isshow'
>
我是v-forh1
>
const vm =
newvue(}
)
其他指令:v-else-if 和 v-else
v-else-if:三種情況以上的判斷
v-if
='num >= 40'
>
第乙個h1
>
v-else-if
='num >= 30 && num < 40'
>
第二個h1
>
v-else
>
第三個h1
>
v-else:兩種情況的判斷
v-if
='num >= 40'
>
第乙個h1
>
v-else
>
第三個h1
>
其他指令:v-once
v-once作用:帶有這個指令的標籤中的內容只執行一次,執行完一次之後標籤中的內容不再被更新
>
}p>
v-once
>
帶once的}p
>
其他指令:v-pre
v-pre作用:帶有這個指令的標籤中的內容不被解析,直接跳過,提高效能
**:
>
}p>
v-pre
>
帶pre的}p
>
其他指令:v-cloak
v-cloak作用:解決渲染的時候頁面內容會閃的問題
**用處:遮蓋
>
[v-cloak]
style
>
v-cloak
>
}p>
Vue基本指令
該指令表示元素和元件只渲染一次,當資料發生改變時,展示內容不會進行更新 v once h1 某些情況下,從伺服器請求到的資料本身就是乙個html 可以使用該指令進行對 的解析並渲染 v html url h1 div src js vue.js script data 該指令和mustache比較相...
Vue基本指令
又叫宣告式渲染 文字差值 語法 v bind繫結class 作用 給目標標籤的更新innertext innerhtml 語法 v text vue變數 v html vue變數 注意 它會覆蓋差值表示式 作用 給標籤繫結事件 語法 點我 1 點我增加1個 點我 5 點我扣除1 點我扣除10 效果 ...
Vue(一) 基本指令
vue 和mvvm之間的關係 插值表示式 使用 v cloak 好處 使用v cloak能夠解決插值表示式閃爍問題 用法 先建立乙個css樣式 v cloak 在元素中使用即可 v text 好處 預設是沒有閃爍問題的 v text會覆蓋元素中的原本的內容,但是插值表示式智慧型替換自己的這個佔位符,...