vue基本指令

2021-09-23 18:37:54 字數 4328 閱讀 2245

指令是一些特殊的標記,給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-html
v-text 相當於 innertext 不識別html標籤

v-html 相當於innerhtml 識別html標籤

指令三、v-bind
v-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會覆蓋元素中的原本的內容,但是插值表示式智慧型替換自己的這個佔位符,...