Fork me on GitHub
随笔 - 234  文章 - 49 评论 - 0 阅读 - 13万
< 2025年4月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10

事件修饰符

实际上,使用 v-on 有几个好处:

  1. 扫一眼 HTML 模板便能轻松定位在 JavaScript 代码里对应的方法。
  2. 因为你无须在 JavaScript 里手动绑定事件,你的 ViewModel 代码可以是非常纯粹的逻辑,和 DOM 完全解耦,更易于测试。
  3. 当一个 ViewModel 被销毁时,所有的事件处理器都会自动被删除。你无须担心如何清理它们。
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>v-on事件修饰符</title>
	<style>

	</style>
</head>
<body>
    <div id="app">
    	<div>阻止单击事件继续传播</div>
    	<!-- 阻止单击事件继续传播 -->
		<input type="text" v-on:click.stop="handlerClick">
		<hr>

    	<div>提交事件不再重载页面</div>
    	<!-- 提交事件不再重载页面 -->
		<button type="submit" v-on:click.prevent="handlerPrevent">点击提交</button>
		<hr>

    	<div>修饰符可以串联</div>
    	<!-- 修饰符可以串联 -->
		<button type="submit" v-on:click.stop.prevent="handlerClickPrevent">修饰符可以串联</button>
		<hr>
		<div>点击事件将只会触发一次</div>
    	<!-- 点击事件将只会触发一次 -->
		<button v-on:click.once="handlerOnce">点击事件将只会触发一次</button>
		<hr>
    </div>
    
    <!-- 1. 引包-->
	<script src="./vue.js"></script>
	<script>
        // 2.初始化
        const vm = new Vue({
            el: '#app',
            // 数据属性
            data: {

            },
            methods:{
            	handlerClick(){
            		console.log("阻止单击事件继续传播");
            	},
            	handlerPrevent(){
            		console.log("提交事件不再重载页面");
            	},
				handlerClickPrevent(){
					console.log('修饰符可以串联');
				},
				handlerOnce(){
					console.log('点击事件将只会触发一次');
				}
            }

        })

	</script>
</body>
</html>

按键修饰符

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>v-on按键修饰符</title>
	<style>

	</style>
</head>
<body>
    <div id="app">
    	<div>阻止单击事件继续传播</div>
    	<!-- 阻止单击事件继续传播 -->
		<input type="text" v-on:keyup.up="keyup"  v-on:keyup.down="keydown">
		<hr>


    </div>
    
    <!-- 1. 引包-->
	<script src="./vue.js"></script>
	<script>
        // 2.初始化
        const vm = new Vue({
            el: '#app',
            // 数据属性
            data: {

            },
            methods:{
            	keyup(){
            		console.log('up');
            	},
            	keydown(){
            		console.log('keydown');
            	}
            }

        })

	</script>
</body>
</html>
posted on   anyux  阅读(135)  评论(0)    收藏  举报
(评论功能已被禁用)
点击右上角即可分享
微信分享提示