Vue中v-on的基礎用法、參數(shù)傳遞和修飾符的示例詳解
一、v-on的基本用法
使用v-on:click給button綁定監(jiān)聽事件以及回調函數(shù),@是v-on:的縮寫,也就是簡寫也可以使用@click。方法一般是需要寫方法名加上(),在@click中可以省掉,如上述的<button @click="increment">加</button>。
以簡單的計數(shù)器為例
<body>
<div id="app">
<h2>{{count}}</h2>
<!-- <button v-on:click="count++">加</button>
<button v-on:click="count--">減</button> -->
<button @click="increment">加</button>
<button @click="decrement">減</button>
</div>
<script>
const app = new Vue({
el:"#app",
data:{
count:0
},
methods: {
increment(){
this.count++
},
decrement(){
this.count--
}
}
})
</script>
</body>二、v-on的參數(shù)傳遞
在methods中定義的方法,我們可以進行調用,可以帶上(),也可以不帶()
如下的btnClick的調用中,加了()想要調用,里面必須要有值,如果不加小括號,就只會調用事件對象。
btnClick3想要傳入event,需要在調用時寫$event,才能調用事件對象。
<div id="app">
<!-- 事件沒傳參 -->
<button @click="btnClick">按鈕1</button>
<button @click="btnClick()">按鈕2</button>
<!-- 事件調用方法傳參,寫函數(shù)時候省略小括號,但是函數(shù)本身需要傳遞一個參數(shù) -->
<button @click="btnClick2(123)">按鈕3</button>
<button @click="btnClick2()">按鈕4</button>
<button @click="btnClick2">按鈕5</button>
<!-- 事件調用時候需要傳入event還需要傳入其他參數(shù) -->
<button @click="btnClick3($event,123)">按鈕6</button>
</div>
<script src="vue.js"></script>
<script>
const app = new Vue({
el:"#app",
methods:{
btnClick(){
console.log("點擊XXX");
},
btnClick2(value){
console.log(value+"----------");
},
btnClick3(event,value){
console.log(event+"----------"+value);
}
}
})
</script>
事件沒傳參,可以省略()事件調用方法傳參了,寫函數(shù)時候省略了小括號,但是函數(shù)本身是需要傳遞一個參數(shù)的,這個參數(shù)就是原生事件event參數(shù)傳遞進去如果同時需要傳入某個參數(shù),同時需要event是,可以通過$event傳入事件。
三、v-on的修飾詞
.stop的使用,btn的click事件不會傳播,不會冒泡到上層,調用event.stopPropagation()。
.prevent調用event.preeventDefault阻止默認行為。
.enter監(jiān)聽鍵盤事件;
once事件只觸發(fā)一次(常用);
capture使用事件的捕獲模式;
self只有event.target是當前操作的元素時才觸發(fā)事件;
passive事件的默認行為立即執(zhí)行,無需等待事件回調執(zhí)行完畢;
<style>
.div {
height:80px;
background:#f00;
}
</style>
</head>
<body>
<div id="app">
<!--1. .stop的使用,btn的click事件不會傳播,不會冒泡到上層,調用event.stopPropagation() -->
<div @click="divClick">
<button @click.stop="btnClick">按鈕1</button>
</div>
<!-- 2. .prevent 調用event.preeventDefault阻止默認行為 -->
<form action="www.baidu.com">
<button type="submit" @click.prevent="submitClick">提交</button>
</form>
<!--3. 監(jiān)聽鍵盤的事件 -->
<form @submit.prevent=''>
賬號<input type="text" name="user"/>
密碼<input type="text" name="password" @keyup.enter="submit"/>
<input type="submit" value="登錄"/>
</form>
<!--4. 事件只觸發(fā)一次(常用) -->
<button @click.once="showInfo">點我提示信息</button>
<!--5. capture使用事件的捕獲模式 -->
<div class="box1" @click.capture="show(111)">
div1外面
<div class="box2" @click="show(222)">
div2里面
</div>
</div>
<!-- 6.只有event.target是當前操作的元素時才觸發(fā)事件 -->
<div class="div" @click.self="showself">
<button @click="showself">點我</button>
</div>
<!-- 7.passive事件的默認行為立即執(zhí)行,無需等待事件回調執(zhí)行完畢 -->
</div>
<script src="vue.js"></script>
<script>
const app = new Vue({
el:"#app",
methods:{
btnClick(){
console.log("點擊button");
},
divClick(){
console.log("點擊div");
},
submitClcik(){
console.log("提交被阻止了")
},
submit(){
console.log("keyup點擊")
},
showInfo(){
alert('web學習真有趣')
},
show(msg){
console.log(msg)
},
showself(e){
console.log(e.target);
},
}
})
</script>
</body>到此這篇關于Vue中v-on的基礎用法、參數(shù)傳遞和修飾符的文章就介紹到這了,更多相關Vue中v-on參數(shù)傳遞和修飾符內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Vite處理html模板插件之vite-plugin-html插件使用
這篇文章主要給大家介紹了關于Vite處理html模板插件之vite-plugin-html插件使用的相關資料,Vite是一個現(xiàn)代化的前端構建工具,而vite-plugin-html是Vite的一個插件,用于在構建時自動生成HTML文件,需要的朋友可以參考下2023-10-10

