Vue事件处理(Day7)

80 阅读2分钟

事件处理

事件的基本使用

  1. 使用v-on:xxx或@xxx绑定事件,其中xxx为事件名

  2. 事件的回调需要配置在methods对象中,最终会绑定在Vue实例上

  3. methods中配置的函数,不用箭头函数,否则this将不能指向Vue实例

  4. methods中配置的函数,都是被Vue管理的函数,this的指向为Vue实例或组件实例对象

  5. @click="dome"与@click="demo($event)"效果相同,但后者可进行传参

   

       

这是一个{{name}}

        <button @click="showInfo1">点我提示信息1

        <button @click="showInfo2(88,$event)">点我提示信息2

   

   

      Vue.config.productionTip = false;

      var vm = new Vue({

        el: "#box",

        data: {

          name: "测试",

        },

        methods: {

            showInfo1(){

                // 此处的this为Vue实例对象

                alert('Hello Word!');

            },

            showInfo2(num,a){

                console.log(num,a);

                alert('Hello Word!!');

            },

            //结果:88

            //             PointerEvent {isTrusted: true, pointerId: 1, width: 1, height: 1, pressure: 0, …}

        },

      });

   

事件修饰符

.prevent: 阻止默认事件(常用)

<a href="www.baidu.com" @click.prevent="showInfo">去百度

.stop: 阻止事件冒泡(常用)

     <div class="demo1" @click="showInfo">

       <button @click.stop="showInfo">点击提示信息

    

.once:事件只能出发一次(常用)

     <div class="demo1" @click="showInfo">

       <button @click.once="showInfo">点击提示信息

    

.capture: 使用事件的捕获模式

     <div class="demo2" @click.capture="showMgs(1)">

       div1

       <div class="demo3" @click="showMgs(2)">div2

    

.self: 只有事件event.target是大改签操作元素时才可触发

     <div class="demo1" @click.self="showInfo">

       <button @click="showInfo">点击提示信息

    

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

     <ul class="list" @wheel="demo">

      

  • 1
  •       

  • 2
  •       

  • 3
  •       

  • 4
  •     

    scroll 页面滚动条发生滚动,wheel 鼠标滚动轮发生滚动

    键盘事件

    1、Vue中常用按键的别名

    enter:回车

    delete:删除/退格

    esc:退出

    space:空格

    tab:换行(一般配合keydown使用)

    up:上

    down:下

    left:左

    right:右

    2、Vue未提供别名的按键,可使用其原始key值进行绑定,需转换为kebab-case(短横线命名)/3、系统修饰键(用法特殊):ctrl,alt,shift,meta

            1、配合keyup使用:按下修饰键的同时,在按下其他键,随后释放其他键事件才被触发

            2、配合keydown使用:正常触发事件

    3、可使用keyCode指定具体按键(不推荐)

    4、使用Vue.config.keyCodes.自定义键名=键码,可制定按键别名

            <input type="text" placeholder="按下回车提示输入" @keyup.inter="shouInfo">
           

            <input type="text" placeholder="按下回车提示输入" @keyup.tab="shouInfo">

    事件总结

    1、事件修饰符可以连续写

    2、系统修饰键也可以连续写