08_Vue指令篇之DOM元素事件绑定_v-on指令

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_41865652/article/details/102494228

1、主要作用

主要作用: 给DOM元素绑定事件。(v-on:事件名称 = “事件执行和函数引用”)

2、简写方法

简写方法: 事件绑定简写:@事件名称 = “事件执行和函数引用”。

3、常用事件修饰符

  • .stop - 调用 event.stopPropagation()。
  • .prevent - 调用 event.preventDefault()。
  • .capture - 添加事件侦听器时使用 capture 模式。
  • .self - 只当事件是从侦听器绑定的元素本身触发时才触发回调。
  • .{keyCode | keyAlias} - 只当事件是从特定键触发时才触发回调。
  • .native - 监听组件根元素的原生事件。
  • .once - 只触发一次回调。
  • .left - (2.2.0) 只当点击鼠标左键时触发。
  • .right - (2.2.0) 只当点击鼠标右键时触发。
  • .middle - (2.2.0) 只当点击鼠标中键时触发。
  • .passive - (2.3.0) 以 { passive: true } 模式添加侦听器

4、使用实例

    <!-- 方法处理器 -->
    <button v-on:click="doThis"></button>

    <!-- 动态事件 (2.6.0+) -->
    <button v-on:[event]="doThis"></button>

    <!-- 内联语句 -->
    <button v-on:click="doThat('hello', $event)"></button>

    <!-- 缩写 -->
    <button @click="doThis"></button>

    <!-- 动态事件缩写 (2.6.0+) -->
    <button @[event]="doThis"></button>

    <!-- 停止冒泡 -->
    <button @click.stop="doThis"></button>

    <!-- 阻止默认行为 -->
    <button @click.prevent="doThis"></button>

    <!-- 阻止默认行为,没有表达式 -->
    <form @submit.prevent></form>

    <!--  串联修饰符 -->
    <button @click.stop.prevent="doThis"></button>

    <!-- 键修饰符,键别名 -->
    <input @keyup.enter="onEnter">

    <!-- 键修饰符,键代码 -->
    <input @keyup.13="onEnter">

    <!-- 点击回调只会触发一次 -->
    <button v-on:click.once="doThis"></button>

     对象语法 (2.4.0+) 
    <button v-on="{ mousedown: doThis, mouseup: doThat }"></button>

5、演示代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>05_v-on事件绑定</title>
</head>
<body>
  <div class="app">
  	<input type="button" value="按钮" v-on:click="func" /><br />
  	<span>{{text}}</span>
  </div>
</body>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
<script>
  // 1、使用实例:
  //     <!-- 方法处理器 -->
  //     <button v-on:click="doThis"></button>
  //     <!-- 动态事件 (2.6.0+) -->
  //     <button v-on:[event]="doThis"></button>
  //     <!-- 内联语句 -->
  //     <button v-on:click="doThat('hello', $event)"></button>
  //     <!-- 缩写 -->
  //     <button @click="doThis"></button>
  //     <!-- 动态事件缩写 (2.6.0+) -->
  //     <button @[event]="doThis"></button>
  //     <!-- 停止冒泡 -->
  //     <button @click.stop="doThis"></button>
  //     <!-- 阻止默认行为 -->
  //     <button @click.prevent="doThis"></button>
  //     <!-- 阻止默认行为,没有表达式 -->
  //     <form @submit.prevent></form>
  //     <!--  串联修饰符 -->
  //     <button @click.stop.prevent="doThis"></button>
  //     <!-- 键修饰符,键别名 -->
  //     <input @keyup.enter="onEnter">
  //     <!-- 键修饰符,键代码 -->
  //     <input @keyup.13="onEnter">
  //     <!-- 点击回调只会触发一次 -->
  //     <button v-on:click.once="doThis"></button>
  //      对象语法 (2.4.0+) 
  //     <button v-on="{ mousedown: doThis, mouseup: doThat }"></button>

  var app =  new Vue({
  	el: '.app',
  	data: {
  		text: '123456',
  	},
  	methods: {
  		func(){
  			this.text = 'hahahahahahaha';
  		},
  	}
  });
</script>
</html>

猜你喜欢

转载自blog.csdn.net/qq_41865652/article/details/102494228