溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Vue修飾符有哪些及怎么使用

發(fā)布時(shí)間:2022-10-12 15:01:21 來(lái)源:億速云 閱讀:154 作者:iii 欄目:web開發(fā)

這篇文章主要介紹了Vue修飾符有哪些及怎么使用的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Vue修飾符有哪些及怎么使用文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。

1.lazy

lazy修飾符作用是,改變輸入框的值時(shí)value不會(huì)改變,當(dāng)光標(biāo)離開輸入框時(shí),v-model綁定的值value才會(huì)改變

<input type="text" v-model.lazy="value">
<div>{{value}}</div>

data() {
 return {
  value: "111111"
 }
}

2.trim

trim修飾符的作用類似于JavaScript中的trim()方法,作用是把v-model綁定的值的首尾空格給過(guò)濾掉。

<input type="text" v-model.trim="value">
<div>{{value}}</div>

data() {
 return {
  value: "111111"
 }
}

3.number

number修飾符的作用是將值轉(zhuǎn)成數(shù)字,但是先輸入字符串和先輸入數(shù)字,是兩種情況

<input type="text" v-model.number="value">
<div>{{value}}</div>

data() {
 return {
  value: "111111"
 }
}

先輸入數(shù)字的話,只取前面數(shù)字部分
先輸入字母的話,number修飾符無(wú)效

4.stop

stop修飾符的作用是阻止冒泡

<div @click="clickEvent(2)" style="width:300px;height:100px;background:red">
    <button @click.stop="clickEvent(1)">點(diǎn)擊</button>
</div>

methods: {
 clickEvent(num) {
  // 不加 stop 點(diǎn)擊按鈕輸出 1 2
  // 加了 stop 點(diǎn)擊按鈕輸出 1
  console.log(num)
 }
}

5.capture

事件默認(rèn)是由里往外冒泡,capture修飾符的作用是反過(guò)來(lái),由外網(wǎng)內(nèi)捕獲

<div @click.capture="clickEvent(2)" style="width:300px;height:100px;background:red">
    <button @click="clickEvent(1)">點(diǎn)擊</button>
</div>

methods: {
 clickEvent(num) {
  // 不加 capture 點(diǎn)擊按鈕輸出 1 2
  // 加了 capture 點(diǎn)擊按鈕輸出 2 1
  console.log(num)
 }
}

6.self

self修飾符作用是,只有點(diǎn)擊事件綁定的本身才會(huì)觸發(fā)事件

<div @click.self="clickEvent(2)" style="width:300px;height:100px;background:red">
    <button @click="clickEvent(1)">點(diǎn)擊</button>
</div>
methods: {
 clickEvent(num) {
  // 不加 self 點(diǎn)擊按鈕輸出 1 2
  // 加了 self 點(diǎn)擊按鈕輸出 1 點(diǎn)擊div才會(huì)輸出 2
  console.log(num)
 }
}

7.once

once修飾符的作用是,事件只執(zhí)行一次

<div @click.once="clickEvent(2)" style="width:300px;height:100px;background:red">
    <button @click="clickEvent(1)">點(diǎn)擊</button>
</div>

methods: {
 clickEvent(num) {
  // 不加 once 多次點(diǎn)擊按鈕輸出 1
  // 加了 once 多次點(diǎn)擊按鈕只會(huì)輸出一次 1 
  console.log(num)
 }
}

8.prevent

prevent修飾符的作用是阻止默認(rèn)事件(例如a標(biāo)簽的跳轉(zhuǎn))

<a href="#" rel="external nofollow" @click.prevent="clickEvent(1)">點(diǎn)我</a>

methods: {
 clickEvent(num) {
  // 不加 prevent 點(diǎn)擊a標(biāo)簽 先跳轉(zhuǎn)然后輸出 1
  // 加了 prevent 點(diǎn)擊a標(biāo)簽 不會(huì)跳轉(zhuǎn)只會(huì)輸出 1
  console.log(num)
 }
}

9.native

native修飾符是加在自定義組件的事件上,保證事件能執(zhí)行

執(zhí)行不了

<My-component @click="shout(3)"></My-component>

可以執(zhí)行

<My-component @click.native="shout(3)"></My-component>

10.left,right,middle

這三個(gè)修飾符是鼠標(biāo)的左中右按鍵觸發(fā)的事件

<button @click.middle="clickEvent(1)"  @click.left="clickEvent(2)"  @click.right="clickEvent(3)">點(diǎn)我</button>

methods: {
 // 點(diǎn)擊中鍵輸出1
 // 點(diǎn)擊左鍵輸出2
 // 點(diǎn)擊右鍵輸出3
 clickEvent(num) {
  console.log(num)
 }
}

11.passive

當(dāng)我們?cè)诒O(jiān)聽(tīng)元素滾動(dòng)事件的時(shí)候,會(huì)一直觸發(fā)onscroll事件,在pc端是沒(méi)啥問(wèn)題的,但是在移動(dòng)端,會(huì)讓我們的網(wǎng)頁(yè)變卡,因此我們使用這個(gè)修飾符的時(shí)候,相當(dāng)于給onscroll事件整了一個(gè).lazy修飾符

<div @scroll.passive="onScroll">...</div>

12.camel

不加camel viewBox會(huì)被識(shí)別成viewbox
<svg :viewBox="viewBox"></svg>

加了canmel viewBox才會(huì)被識(shí)別成viewBox
<svg :viewBox.camel="viewBox"></svg>

12.sync

當(dāng)父組件傳值進(jìn)子組件,子組件想要改變這個(gè)值時(shí),可以這么做

父組件里

<children :foo="bar" @update:foo="val => bar = val"></children>

子組件里

this.$emit("update:foo", newValue)

sync修飾符的作用就是,可以簡(jiǎn)寫:

父組件里

<children :foo.sync="bar"></children>

子組件里

this.$emit("update:foo", newValue)

13.keyCode

當(dāng)我們這么寫事件的時(shí)候,無(wú)論按什么按鈕都會(huì)觸發(fā)事件

<input type="text" @keyup="shout(4)">

那么想要限制成某個(gè)按鍵觸發(fā)怎么辦?這時(shí)候keyCode修飾符就派上用場(chǎng)了

<input type="text" @keyup.keyCode="shout(4)">

Vue提供的keyCode:

//普通鍵
.enter 
.tab
.delete //(捕獲“刪除”和“退格”鍵)
.space
.esc
.up
.down
.left
.right
//系統(tǒng)修飾鍵
.ctrl
.alt
.meta
.shift

例如:

按 ctrl 才會(huì)觸發(fā)

<input type="text" @keyup.ctrl="shout(4)">

也可以鼠標(biāo)事件+按鍵

<input type="text" @mousedown.ctrl.="shout(4)">

可以多按鍵觸發(fā) 例如 ctrl + 67

<input type="text" @

關(guān)于“Vue修飾符有哪些及怎么使用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“Vue修飾符有哪些及怎么使用”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

vue
AI