Vue模板語法 mustache語法列表渲染 事件

2021-09-23 15:29:34 字數 4743 閱讀 2852

vue模板語法 mustache語法 雙大括號語法

1.指令

vue 指令

作用: 是用來操作dom的,指令就是繫結在dom身上的乙個屬性,這個屬性具備一定的功能,這個功能用來操作dom

以後我們不在像以前一樣,先獲取dom,在操作了,我們現在可以直接使用指令來操作dom

這個指令需要模板語法的支援,所以我們採用jsx語法糖

2.元件

模板語法

模板語法支援性還是很高的,資料型別都是支援的,但是不支援 輸出語法 ( console.log alert )

指令的具體展示

1.格式:

1.v-*** = 「mustache語法」

2.v-*** = 「msg」

3.v-*** = 「}」 錯誤的

2.v-html 將乙個資料展示在乙個dom內容中, innerhtml( html屬性 )

防止指令碼攻擊 xss csrf

3.v-bind

使用技巧: 凡是 dom 的屬性要和資料進行繫結,那麼我們就可以使用 v-bind

格式: v-bind:domattr = 「data」

4.v-text 非轉①輸出,v-html轉義輸出

1.2. 

1new vue(

})輸出的結果為

hellow

class vs style

2?true:false,[color]: true,[box]: true}">

object寫法

2?true:false,[color]: true,[box]: true}">

arr寫法

2.條件渲染 v-if && v-show

1.條件渲染有兩個指令, 乙個是 v-if , 另外乙個是 v-show

2.v-if 有三種使用形式

單路分支

雙路分支

多路分支

單路分支

雙路1

雙路2

a b

c

new vue(

})

v-show

千鋒教育

new vue(

})

4… v-if vs v-show

1.v-if 如果值為false,那麼繫結的dom就會被銷毀

2.v-if 操作的是乙個dom的生成和銷毀

3.如果v-if的初始值時false,那麼繫結元素是否會渲染呢?

答:v-if如果是false,那麼這個dom元素是不會渲染的

4.v-show 操作的是乙個dom的dispay樣式屬性

5.如果v-show的初始值是false,那麼這個繫結的dom元素是否會渲染呢?

答:v-show不管值是什麼,它都會渲染出來

6.總結:一般來說,v-if 有更高的切換開銷,而 v-show 有更高的初始渲染開銷。因此,如果需要非常頻繁地切換,則使用 v-show 較好;如果在執行時條件很少改變,則使用 v-if 較好。

7.template:相當於虛擬dom

1.template標籤如果放在模板的範圍內使用,那麼將來不會被解析渲染23

4567

8910

new vue(

})

6.列表渲染

v-for 是用來做列表渲染的

1.格式

v-for = " *** in(of) data "

舉例:v-for = " item in(of) todos "

new vue()
2.帶引數的格式

v-for = " (item,index) in todos "

new vue(

})

key( 留一部分 )

1每次列表迴圈的後面都要繫結乙個key,是為了進行dom的唯一標識,這樣就不會讓vue因為惰性而影響列表的正常渲染

2.理想的key是使用資料中的id

資料的更新檢測

1.使用以下方法運算元組,可以檢測變動:

push() pop() shift() unshift() splice() sort() reverse()

2.新陣列替換舊陣列:filter(), concat() 和 slice() ,map()

3.不能檢測以下變動的陣列:

vm.items[indexofitem] = newvalue

解決 (1)vue.set(example1.items, indexofitem, newvalue)

vm.items.length = 0

解決 (1)splice

新增 不能檢測的

清空乙個陣列

new vue(,]},

methods: )

},notchange () ,

clear ()

}})

methods 方法

1事件的新增使用的是 v-on:eventtype = 『事件處理程式』

2.事件處理程式往options裡面的methods配置項中書寫

+
new vue(,

methods:

}})

computed 計算屬性

計算屬性中存放的也是方法

計算屬性的方法中必須要有返回值

計算屬性的方法名可以像data選項中定義的資料一樣使用

computed: )

}}

事件

1.指令v-on

2.格式

v-on:eventtype = 「事件處理程式名稱」

3.簡寫

@eventtype = 『事件處理程式名稱』

普通事件

普通事件-簡寫 事件物件 事件傳參

事件傳參

事件傳參 - 事件物件

//如果我的引數中需要事件物件

//解決: 在方法呼叫的時候,使用乙個叫做$event的作為實際引數

new vue(,

methods: ,

eventhandler ( e ) ,

arguhandler ( a, b ) ,

argu_event_handler ( a,b,e)

}})

1事件的修飾符

1.格式: v-on:click.*** = 『handler』

1.1 ***指的是修飾符的名稱

2修飾符的種類:

.stop:阻止冒泡

.prevent:阻止瀏覽器的預設行為

.capture:事件捕獲

.self:阻止冒泡

.once:事件只觸發一次

.passive:滾輪事件不會立即觸發,會等待onscoll完成再觸發

3.問題: 修飾符使用有什麼好處?

1.舉例: 事件冒泡案例

2.分析: 發現 e.stoppropagation() 在每乙個方法中都要使用,這個時候發現**很冗餘

4 解決: 事件修飾符

new vue(,

middlehandler (e) ,

smallhandler (e)

}})

按鍵修飾符

1.案例: 敲擊鍵盤的enter鍵,將使用者輸入的資料拿到手?

2.事件的書寫

2.1先寫方法,然後在繫結dom元素身上
3需要按鍵修飾符的原因:

3.1我們發現當我們需要書寫很多下面類似**的時候,發現**在重複,我們希望**能復用或是簡寫

3.2 解決: 它將這部分**封裝在自己的 vue.js中,然後我們來呼叫這個功能,我們通過按鍵修飾符來使用

new vue(

},get_user_shuru ( e )

}})

自定義按鍵修飾符鍵盤碼

vue.config.keycodes.p = 80

. 雙向資料繫結/資料驅動/深入響應式

原理:vue是通過資料劫持和事件的發布訂閱來進行資料驅動的,當我們在data選項中定義資料後,vue會通過observer(觀察者)

監聽data選項,將data選項中的所有key通過es5的object.definedpropty進行getter和setter設定,當

資料繫結在dom上是,就會觸發getter,給dom設定初始值,當我們在v(檢視中)輸入內容時,就會觸發setter

,就可以獲得最新的值,通過watch(監聽)通知vue進行v(檢視)重新渲染

v-model

vue中通過 v-model 來進行雙向資料繫結

v-model只用於表單元素

v-model預設繫結 value屬性

格式:

購物車加減案列

- +

new vue(,

decrement ()

}})

通過單項資料繫結實現雙向資料繫結

原理:鍵盤一輸入內容就要獲取input的值,然後修改vm資料

new vue(,

methods:

}})

Vue之mustache模板引擎

中高階前端 leader職位必會底層知識 vue原始碼非常龐大,各種機理很多 模板技術 資料劫持 虛擬節點 最小量更新 抽象語法樹 手寫底層原始碼,拒絕紙上談兵,讓同學能實打實的提公升程式設計 核心機理是共通的 永恆的。lang en charset utf 8 name viewport cont...

vue資料雙向繫結 mustache語法

mustache 模板,用於構造html頁面內容。在實際工作中,當同乙個模板中想要呼叫不同的函式來渲染畫面,在已經自定義好了的前提下,可以在渲染頁面時對傳入的引數進行手動判斷。mustache 的模板語法很簡單,就那麼幾個 先來乙個簡單demo,親測無bug 就是 mustache 的標示符,花括號...

Vue的插值操作 mustache語法

vue的插值操作 mustache語法 mustache語法 當變數宣告後,可以直接在宣告的範圍使用mustache語法直接顯示資料 當前計數 下面是頁面顯示的效果 使用vue 是不是很簡單 當前計數 這裡顯示就是使用的就是mustache語法 也可以做簡單的表示式操作 當前計數 顯示的是5 字串的...