vue之.prevent修饰符

13,732 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第21天,点击查看活动详情

Vue是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,Vue 都可以胜任。

.prevent是阻止默认事件修饰符。阻止默认事件是指有些标签本身会存在事件,如<a>标签的跳转,form表单中submit按钮的提交事件等,在某些时候只想执行自己设置的事件,这时就需要阻止标签的默认事件的执行。在vue中,只需要使用.prevent修饰符可以。

	<div id="app">
		<a href="http://www.baidu.com" @click.prevent="aHandlerClick">链接跳转</a>
	</div>
	<script>
		var vm =new Vue({
		el:'#app',
		data:{},
		methods:{
			btnHandlerClick(){
				alert('我是<a>标签的单击事件')
			}	
		}
		}) ;
	</script>

上面的代码中,如果@click后面没有添加.prevent修饰符,则为<a>标签添加了一个单击事件,由于<a>标签本身具有默认的跳转事件,当单击跳转链接后,最终还是会执行<a>标签的默认事件。也就是先打开弹窗,然后跳转到链接的网站。如果在@click后面加上.prevent修饰符,就只会打开弹窗,不会跳转到链接的网站,因为默认的跳转事件被阻止了。

修饰符的串联

修饰符是可以进行串联的,即多个修饰符连接在一起使用,比如下面的这行代码不仅阻止了冒泡,而且还阻止了默认行为。

<a href="http://www.baidu.com" v-on:click.stop.prevent="doThat"></a>

只有修饰符没有具体方法

只有修饰符,即只是阻止一个行为,但不做“事情”,后面不需要提供方法,比如下面这些代码:

<form v-on:submit.prevent></form>

另外下面的代码中的v-on:submit.prevent后面也没有提供要执行的方法。

<form v-on:submit.prevent>
<input type="text" name="username" />
<input type="submit" value="提交" />
</form>