1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8" />
5 <title>事件的基本使用</title>
6 <script type="text/javascript" src="../js/vue.js"></script>
7 </head>
8 <body>
9 <!--
10 事件的基本使用:
11 1.使用v-on:xxx 或者简写 @xxx 绑定事件,其中xxx是事件名
12 2.事件的回调需要配置在methods对象中,最终会在vm上
13 3.methods中配置的函数,不要用箭头函数!否则this就不是vm了
14 4.methods中配置的函数,都是被Vue关联的函数,this的指向是vm 或 组件实例对象
15 5.@click="demo" 和 @click="demo($event)" 效果一样,但后者可以船参数
16 -->
17 <div id="root">
18 <h1>hello, {{name}}</h1>
19 <button v-on:click="showInfo1">点我提示信息(不传参)</button>
20 <button @click="showInfo2($event,66)">点我提示信息(传参)</button>
21 </div>
22 </body>
23
24 <script type="text/javascript" >
25 Vue.config.productionTip = false;// 阻止 vue 在启动时生成生产提示。
26
27 let vm = new Vue({
28 el: '#root',
29 data: {
30 name: 'Jack'
31 },
32 methods: {
33 showInfo1(event){
34 console.log(event.target.innerText);// target事件对象,发生事件的事件目标(元素)
35 console.log(this); // 这里的this就是vm(vue对象)
36 alert('showInfo1');
37 },
38 showInfo2: function (event, number) {
39 console.log(number);
40 alert('showInfo2');
41 }
42 }
43 })
44 vm.$mount('#root') // el的第二种写法
45 </script>
46 </html>
  1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8" />
5 <title>事件修饰符</title>
6 <script type="text/javascript" src="../js/vue.js"></script>
7 <style>
8 *{
9 margin-top: 5px;
10 }
11 .demo2{
12 height: 50px;
13 background-color: skyblue;
14 }
15 .demo4{
16 padding: 5px;
17 background-color: skyblue;
18 }
19 .demo4_1{
20 padding: 5px;
21 background-color: orange;
22 }
23 .list{
24 width: 200px;
25 height: 200px;
26 background-color: peru;
27 overflow: auto;
28 }
29 li{
30 height: 100px;
31 }
32 </style>
33 </head>
34 <body>
35 <!--
36 Vue中的事件修饰符(事件修饰符可以连续使用,如:@click.prevent.stop,先阻止默认事件,再阻止冒泡事件,是有优先顺序的,谁在前谁优先):
37 1.prevent: 阻止默认事件(常用)
38 2.stop:阻止事件冒泡(常用)
39 3.once:事件只触发一次(常用)
40 4.capture:使用事件的捕获模式
41 5.self:只有event.target是当前操作的元素时才会触发事件
42 6.passive:事件的默认行为立即执行,无需等待事件回调执行完毕
43 -->
44 <div id="root">
45 <h1>hello, {{name}}</h1>
46 <!-- 1.prevent: 阻止默认事件(常用) -->
47 <a href="http://baidu.com" @click.prevent="showInfo1">点我提示信息</a>
48 <!-- 2.stop:阻止事件冒泡(常用) -->
49 <div class="demo2" @click="showInfo2" >
50 <!-- 冒泡事件会先调用button的showInfo2事件,然后有执行div的showInfo2事件 -->
51 <button @click.stop="showInfo2">点我提示信息</button>
52 </div>
53 <!-- 3.once:事件只触发一次(常用) -->
54 <button @click.once="showInfo2">点我提示信息</button>
55 <!-- 4.capture:使用事件的捕获模式 -->
56 <div class="demo4" @click.capture="showInfo4(1)">
57 div1
58 <div class="demo4_1" @click="showInfo4(2)">
59 div2
60 </div>
61 </div>
62 <!-- 5.self:只有event.target是当前操作的元素时才会触发事件 -->
63 <!-- showInfo4(1) 冒泡事件的时候只有event.target是当前操作的元素时才会触发事件 -->
64 <div class="demo4" @click.self="showInfo4(1)">
65 div1
66 <div class="demo4_1" @click="showInfo4(2)">
67 div2
68 </div>
69 </div>
70 <!-- 6.passive:事件的默认行为立即执行,无需等待事件回调执行完毕 -->
71 <!-- scroll:滚动条滚动的时候触发
72 wheel:鼠标滚轮滚动的时候触发
73 scroll与wheel区别:滚动条滚动到底部的时候因为不能继续往下滚动所以你再往下滚动的时候不会触发,但鼠标滚轮可以一直往下滚动不管滚动条是不是到底了,它会一直触发
74 -->
75 <ul @wheel.passive="demo6" class="list">
76 <li>1</li>
77 <li>2</li>
78 <li>3</li>
79 <li>4</li>
80 </ul>
81 </div>
82 </body>
83
84 <script type="text/javascript" >
85 Vue.config.productionTip = false;// 阻止 vue 在启动时生成生产提示。
86
87 let vm = new Vue({
88 el: '#root',
89 data: {
90 name: 'Jack'
91 },
92 methods: {
93 showInfo1(event){
94 // event.preventDefault(); // 阻止默认事件(当前a标签的href)的触发。Vue中使用prevent事件修饰符一样的效果
95 alert('showInfo1');
96 },
97 showInfo2(e) {
98 // e.stopPropagation(); // 这样就阻止了div的冒泡事件 Vue可以直接使用stop修饰符
99 alert('我是提示信息!');
100 },
101 showInfo4(number){
102 // 冒泡事件的调用流程:捕获事件,从父控件到子控件依次捕获,然后冒泡依次执行,所以依次是showInfo4(2)、showInfo4(1)
103 // 当设置事件修饰符capture时,事件在捕获的时候直接执行,依次是showInfo4(1)、showInfo4(2)
104 console.log(number);
105 },
106 demo6(e){
107 // 当你滚动鼠标滚轮的时候会立即执行该方法(demo6 我们定义的事件回调),
108 // 然后去滚动条会往上或者往下滚动(默认回调)
109 // 但当你使用passive 事件修饰符的时候,它的流程就变成立即执行默认回调,不再等待demo6执行完了再执行
110 for (let i = 0; i < 1000; i++){
111 console.log('@');
112 }
113 console.log('累坏了');
114 }
115 },
116
117 })
118 vm.$mount('#root') // el的第二种写法
119 </script>
120 </html>

Vue 事件的基本使用 && 事件修饰符的更多相关文章

  1. Vue学习笔记十一:按键修饰符和自定义指令(钩子函数)

    目录 padStart:补位 按键修饰符 Vue提供的按键修饰符 自定义按键修饰符 自定义指令 自定义指令的使用 钩子函数 钩子函数参数 使用钩子函数的bingding参数 私有自定义指令 钩子函数的 ...

  2. vue.js(13)--按键修饰符

    v-on监听事件时可添加按键修饰符 <!-- 只有在 `key` 是 `Enter` 时调用 `vm.submit()` --> <input v-on:keyup.enter=&q ...

  3. 043——VUE中组件之使用.sync修饰符与computed计算属性实现购物车原理

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Vue中v-model解析、sync修饰符解析

    上善若水,水善利萬物而不爭.——<道德經> 简介 在平时开发是经常用到一些父子组件通信,经常用到props.vuex等等,这里面记录另外的三种方式v-model.sync是怎么使用,再说是 ...

  5. 第二章 Vue快速入门-- 28 自定义按键修饰符

    事件处理-按键修饰符 js 里面的键盘事件对应的键码 <!DOCTYPE html> <html lang="en"> <head> <m ...

  6. vue.js_03_vue.js的样式和修饰符

    1.vue.js的样式 <body> <div id="app"> <h1 :style="styleObj1">这是一个h ...

  7. Vue中v-model指令的常用修饰符

    v-model指令有三个可以选用的修饰符:.lazy..number以及.trim.vue官方对此的描述为: .number-输入字符串转为有效的数字 .lazy-取代input监听change事件 ...

  8. 第六十二篇:Vue的双向绑定与按键修饰符

    好家伙,依旧是vue的基础 1.按键修饰符 假设我们在一个<input>框中输入了12345,我们希望按一下"Esc" 然后删除所有前面输入的内容,这时候,我们会用到按 ...

  9. VUE组件3 数据流和.sync修饰符

    单向数据流:数据通过prop从父组件传递到子组件中,当父级组件中的数据更新时,传子组件也会更新,但不能在子组件中修改.防止子组件在无意中修改,改变父级组件状态 然而,双向数据绑定在某些情况下有用.如果 ...

  10. vue 表单基本 表单修饰符

    表单的基础 利用v-model进行双向数据绑定: 1.在下拉列表中,将v-model写在select中 2.单选框和复选框需要每个按钮都需要写上v-model 3.v-model在输入框中获取得是输入 ...

随机推荐

  1. CentOS配置epel源

    https://opsx.alibaba.com/mirror epel 配置方法 1.备份(如有配置其他epel源) mv /etc/yum.repos.d/epel.repo /etc/yum.r ...

  2. 好客租房46-react组件进阶目标

    1能够使用props接收数据 2能够使用父子组件之间的通讯 3能够实现兄弟组件之间的通讯 4能够给组件添加props校验 5能够说出生命周期常用的钩子函数 6能够知道高阶组件的作用 组件通讯介绍 组件 ...

  3. 好客租房30-事件绑定this指向(箭头函数)

    1箭头函数 利用箭头函数自身不绑定this的特点 //导入react     import React from 'react'           import ReactDOM from 'rea ...

  4. 场景实践:使用RDS和ECS搭建个人博客

    体验简介 本教程将使用一台基础环境为CentOS7.7的云服务器ECS实例, 搭配您已有的云数据库RDS实例,帮助您快速搭建属于自己的云上博客. 背景知识 本场景主要涉及以下云产品和服务: 阿里云关系 ...

  5. 【单片机】CH32V103v8t6开发板调试笔记

    一.开发板样式和资源 找官网的商务申请了一块开发板,打算试一下串口打印程序测试,发现网上关于这个板子的相关资料特别少,为方便后来人,就顺便记录一下,板子资源如下图所示. 板子芯片的引脚排布图 二.使用 ...

  6. VueX数据持久化

    解决:Vue刷新时获取不到数据 解决方案:1.本地存储 2.Vuex数据持久化工具插件 本地存储 import Vue from "vue"; import Vuex from & ...

  7. Clash 规则的写法

    这篇博文是针对 CFW 写的. 最近尝试从 v2 转向使用 Clash.基于一个简单的需求:用 Spotify 听专的时候用代理,用 AM 听专的时候直连,我参考了以下完成了我的规则: CFW 官网的 ...

  8. JS:&&运算符

    &&逻辑运算符 当&&连接语句时,两边的语句会转化为布尔类型 1.两边条件都为true时,结果才为true: 2.如果有一个为false,结果就为false: 3.当第 ...

  9. String-StringBuffer-StringBuilder,Comparable-comparator

    String 1.String是final类,不可被继承 2.内部是value[]的数组 private final char value[]; 3.不可变字符串 String s1 = " ...

  10. NC16564 [NOIP2012]借教室

    NC16564 [NOIP2012]借教室 题目 题目描述 ​ 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借 ...