vue使用once修饰符,使事件只能触发一次问题

2022-10-14,

这篇文章主要介绍了vue使用once修饰符,使事件只能触发一次问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

目录
  • once修饰符,使事件只能触发一次
  • vue事件修饰符(once:prev:stop)
    • 注释说的很详细

once修饰符,使事件只能触发一次

多个修饰符可以同步使用

<!--定义vue的操作对象-->
<div id="app">
    <!-- 使用self修饰符 点击标签自身时才会执行事件 -->
    <!-- 使用once修饰符 使事件只能触发一次  -->
    <!-- 多个修饰符可以同时使用   -->
    <div class="inner" @click.self.once="divClick">
        <input type="button" value="点击" @click="butClick">
    </div>
</div>
<!--导入vue.js-->
<script src="./vue.js"></script>
<script>
    //创建一个vue实例
    var vm = new Vue({
        el:"#app", //指定实例控制的DOM元素
        data:{ //存储页面数据
        },
        methods:{ //在此处定义实例可用的所有方法
            divClick(){
                console.log('div点击事件')
            },
            butClick(){
                console.log('button点击事件')
            }
        }
    })
</script>

vue事件修饰符(once:prev:stop)

附有同一文件夹下的html文件、js文件和css文件

注释说的很详细

index.html的代码

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>vue</title>
	<link rel="stylesheet" href="style.css" rel="external nofollow" >
	<script src="https://cdn.jsdelivr.net/npm/vue"></script>
</head>
<body>
	<!--vue-app是根容器-->
	<div id="vue-app">
	<h1>Event</h1>
	<button @click.once="add(1)">单击涨一岁</button>
	<button v-on:click="subtract(1)">单击减一岁</button>
	<button @dblclick="add(10)">双击涨十岁</button>
	<button v-on:dblclick="subtract(10)">双击减十岁</button>
	<p>My age is {{age}}</p>
	
	<div id="canvas" v-on:mousemove="updateXY">
	{{x}},{{y}} - 
	<span v-on:mousemove="stopMoving">Stop Moving</span>
	<br>
	<span v-on:mousemove.stop="">Stop Moving</span>
	</div>
	<a v-on:click="alert()" href="https://blog.csdn.net/qq_40647912" rel="external nofollow"  rel="external nofollow" >baidu</a>
	<br>
	<a v-on:click.prevent="alert()" href="https://blog.csdn.net/qq_40647912" rel="external nofollow"  rel="external nofollow" >baidu</a>
	</div>
	</div>
	<script src="app.js"></script>
	
</body>
</html>

app.js的代码

//实例化VUE对象
new Vue({
	el:"#vue-app",
	//仅限于在vue-app容器下
	data:{
		age:30,
		x:0,
		y:0
		},
	methods:{
		add:function(inc){
			this.age += inc;
		},
		subtract:function(dec){
			this.age -= dec;
		},
		updateXY:function(event){
			this.x = event.offsetX;
			this.y = event.offsetY;
		},
		stopMoving:function(event){
			event.stopPropagation();
		},
		alert:function(){
			alert("Hellow world !");
		}
	}
});

style.css代码

#canvas{
	width: 600px;
	padding: 200px 20px;
	text-align: center;
	border: 1px solid #333;
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持北冥有鱼。

您可能感兴趣的文章:

  • Vue中sync修饰符分析原理及用法示例
  • Vue重要修饰符.sync对比v-model的区别及使用详解
  • vue中的事件修饰符once,prevent,stop,capture,self,passive
  • vue5中的事件修饰符(style)和template
  • Vue之事件处理和事件修饰符详解
  • 面试最常问的13种Vue修饰符
  • 详解Vue的sync修饰符
  • Vue常用的修饰符的作用详解

《vue使用once修饰符,使事件只能触发一次问题.doc》

下载本文的Word格式文档,以方便收藏与打印。