首页 > 其他分享 >day57--事件处理

day57--事件处理

时间:2023-01-11 19:44:34浏览次数:32  
标签:log 事件处理 console name -- methods 事件 提示信息 day57

事件处理

使用v-on:xxx或者@xxx绑定事件,xxx是事件别名

在methods对象中配置回调函数

在methods中配置函数时,不要使用箭头函数

click事件

点击事件,点击对应的标签或者按钮会产生一个事件

@click='demo' 和@click='demo($event)'效果一致,但后者可以传参

代码如下:

首先创建div标签:

 <div id="root">
     <h2>欢迎来到{{name}}世界</h2>
 <!--    <button v-on:click="showInfo">点我提示信息1</button>-->
     <button @click="showInfo1">点我提示信息1不传参</button>
 <!--    简写-->
     <button @click="showInfo2(66,$event)">点我提示信息2 传参</button>
 ​
 </div>

 

之后设置vue实例:

 <script>
     const vm = new Vue({
         el:'#root',
         data:{
             name:'gugu'
         },
         methods:{
             showInfo1(event){
                 console.log(this)//此处的this是vm
                 alert('hello')
             },
             showInfo2(number,event){
                 alert('hello hello')
                 console.log(number)
             }
         }
     })
 </script>

 

总结:

 <!--
     事件的基本使用:
         1. 使用v-on:xxx 或@xxx绑定事件,其中xxx是事件名
         2. 事件的回调需要配置在methods对象中,最终会在vm上
         3. methods中配置的函数,不要用箭头函数,否则this指代的是window
         4. methods中配置的函数,都是被vue所管理的函数,this指向的是vm或者组件实例对象
         5. @click='demo' 和@click='demo($event)'效果一致,但后者可以传参
 -->

 

事件修饰符

常见修饰符

  1. prevent:阻止默认事件,例如网页跳转

  2. stop:阻止事件冒泡 例如回调时触发其他事件

  3. once:事件只触发一次,之后再点击无效

    代码:

     <div id="root">
         <h2>welcom to {{name}} world</h2>
     ​
         <!--prevent:阻止默认事件-->
         <a href="http://www.bilibili.com" @click.prevent="showinfo">点我提示信息</a>
     ​
         <!--stop:阻止事件冒泡-->
         <div class="demo1" @click="showinfo">
             <button @click.stop="showinfo">点我提示信息</button>
             <!--点一次按钮出现两次弹窗,先出现button中的,后出现div中的-->
         </div>
     ​
         <!--once:事件只触发一次-->
         <button @click.once="showinfo">点我提示信息</button>
     </div>
     <script>
         new Vue({
             el:'#root',
             data:{
                 name:'gugu'
             },
             methods:{
                 showinfo(){
                     alert('hello!')
                 },
                 showMsg(msg){
                     console.log(msg)
                 },
                 demo(){
                     for (let i = 0; i < 100000; i++) {
                         console.log('#')
                     }
                     console.log('tired')
                 }
             }
         })
     </script>

     

    css配置:

     
    <style>
         *{
             margin-top: 20px;
         }
         .demo1{
             height: 50px;
             background: aqua;
         }
         .box1{
             padding: 5px;
             background: aquamarine;
         }
         .box2{
             padding: 5px;
             background: orange;
         }
         .list{
             width: 200px;
             height: 200px;
             background: palegreen;
             overflow:auto;
         }
         li{
             height: 100px;
         }
     </style>

     

不常见修饰符

  1. capture:使用事件的捕获模式,在捕获事件时执行

  2. self:只有event.target是当前操作的元素时才触发事件

  3. passive:事件的默认行为立即执行,无需等待事件回调执行完毕

 
<div id="root">
     <h2>welcom to {{name}} world</h2>
 ​
 <!--capture:使用事件的捕获模式,在捕获时执行-->
     <div class="box1" @click.capture="showMsg(1)">
         div1
         <div class="box2" @click="showMsg(2)">
             div2
         </div>
     </div>
 ​
     <!--self:只有event.target是当前操作的元素时才触发事件-->
     <div class="demo1" @click.self="showinfo">
         <button @click="showinfo">点我提示信息</button>
     </div>
 ​
     <!--passive:事件的默认行为立即执行,无需等待事件回调执行完毕-->
     <ul class="list" @wheel="demo" @click.passive>
         <!--scroll:滚动条滚动触发事件-->
         <!--wheel:鼠标滚轮滚动触发事件-->
         <li>1</li>
         <li>2</li>
         <li>3</li>
         <li>4</li>
     </ul>
 </div>

 

vue实例与css同上

键盘事件

@keyup,keydown绑定键盘事件

 <!--  keydown:摁下就触发事件  -->
 <!--  keyup:摁下松手才触发事件  -->

 

代码:

 <body>
 <!--
     1. vue中常用的按键别名:
         回车:enter
         删除:delete(捕获删除和退格键)
         退出:esc
         空格:space
         换行:tab(特殊,必须要使用keydown使用)
         上:up
         下:down
         左:left
         右:right
      2.vue未提供别名的按键,可以使用按键原始的key值去绑定,但要注意转为kebab-case
 ​
      3. 系统修饰键:ctrl,alt,shift,meta,tab
         (1).配合keyup使用:按下修饰键的同时,再按下其他键,随后释放其他键,事件才被触发
         (2).配合keydown使用:正常触发事件。
      4. 也可以使用KeyCode去指定具体的按键
      5. Vue.config.KeyCode.自定义键名 = 键码,可以定制按键别名
 -->
 <div id="root">
     <h2>welcome to {{name}} world</h2>
     <input type="text" placeholder="按下回车提示输入" @keyup.huiche="showInfo">
 ​
     <!--  keydown:摁下就触发事件  -->
     <!--  keyup:摁下松手才触发事件  -->
 ​
 </div>
 ​
 </body>
 <script>
     Vue.config.productionTip = false
     Vue.config.keyCodes.huiche = 13 // 定义了一个别名
     new Vue({
         el:'#root',
         data:{
             name:"gugu",
         },
         methods:{
             showInfo(e){
                 // console.log(e.key,e.keyCode)
                 console.log(e.target.value)
             }
         }
     })
 </script>

 

over

标签:log,事件处理,console,name,--,methods,事件,提示信息,day57
From: https://www.cnblogs.com/GUGUZIZI/p/17044748.html

相关文章

  • Raft算法
    什么是RaftRAFT协议是一种共识算法(consensusalgorithm)。什么是共识算法,说白了也就是大多数成员达成一致的算法。那对于大多数有定量吗?有,大于等于N/2+1就是大多数,也就是......
  • inux常用命令
    ls-la查看当前文件夹的文件mrdir目录名称[创建目录,创建文件夹]关机,重启shutdown-hnow关机shutdown-h1[1分钟后关机]shutdown-rnow重启系统halt关机......
  • 为什么list的size只有一个的时候,无法执行for循环,不然会报这个错误(Unable to evaluate
       “ConcurrentModificationException是基于java集合中的快速失败(fail-fast)机制产生的,在使用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了......
  • Win10+Vue环境配置
    发现前年写的代码是答辩,决定试试Vue1.下载npmnpm 是 Node.js 的包管理工具,用来安装各种Node.js的扩展。下载地址安装的时候什么选项都不用勾选。2.修改扩展......
  • 雨天与心情
    说到“雨天”,不自觉地将之与“交通拥堵”、“出行不便”、“湿了鞋子”、“阴冷潮湿”联想到了一起,对我来说,我还联想到“骑自行车湿了背包”。这样一想,不喜欢下雨......
  • Hello
    index.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewpo......
  • 【编程】大端小端模式
    一句话:低位的数据保存到高位上,就是装大尾巴狼,就是大端。 数据:11223344(尾端是44)保存在寄存器:(左边是高地址)44332211  (右边是低地址) --大端保存在寄存器:(左边是高地址......
  • 第四章:视图层
    三板斧介绍"""HttpResponse 返回字符类型render 返回HTML页面,并且可以在返回浏览器之前给HTML文件传值redirect 重定向"""#视图函数必须要返回一个HttpResponse......
  • 10分钟做好 Bootstrap Blazor 的表格组件导出 Excel/Word/Html/Pdf
    上篇:BootstrapBlazor实战通用导入导出服务(Table组件)1.新建工程新建工程b14tabledotnetnewblazorserver-ob14table将项目添加到解决方案中:dotnetslnadd......
  • 类型转换
    类型转换由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。低——————————————高byte,short,char-int-long-float-double运算中,不同类......