• Vue事件处理


    gitHub地址:https://github.com/huangpna/vue_learn/example里面的lesson04

    一 vue事件处理方法实现

    举个例子:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>index1</title>
    </head>
    <body>
    <div id="app1">
        <button @click="sayHi">点击一下</button> <!--也可以用v-on指令监听DOM-->
    </div>
    </body>
    <script src="../js/vue.min.js"></script>
    <script>
        /**
         *事件处理方法 --  vue简单方法实现
        * */
        var vm = new Vue({
            el:'#app1',
            // 在 `methods` 对象中定义方法
            methods:{
                sayHi:function () {
                    alert("我被点击了");
                }
            }
        });
    </script>
    </html>

    二 方法传参

    举个例子:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>index2</title>
    </head>
    <body>
    <div id="app2">
        <button @click="sayHi('我被点击了')">说我被点击了</button>   <!--事件传参-->
        <button @click="sayHi('您好')">说您好</button>
    </div>
    </body>
    <script src="../js/vue.min.js"></script>
    <script>
        var vm = new Vue({
            el:'#app2',
            methods:{
                sayHi:function (msg) {
                    alert(msg);
                }
            }
        });
    </script>
    </html>

    三 vue访问原生DOM事件

    举个例子:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>index3</title>
    </head>
    <body>
    <div id="app3">
        <button @click="sayHi('我被点击了',$event)">说我被点击了</button>  <!--这里使用@-->
        <div style="height: 100px; 100px;background-color: red;" @mouseover="over('鼠标从我上面滑过',$event)">
            鼠标从我上面滑过试试
        </div>
    </div>
    </body>
    <script src="../js/vue.min.js"></script>
    <script>
        var vm = new Vue({
            el:'#app3',
            methods:{     //这里使用methods
                sayHi:function (msg,$event) {
                    alert(msg+$event);  //弹出我被点击了,事件是[object MouseEvent]
                },
               over:function (msg,$event) {
                    alert(msg+$event); //弹出鼠标从我上面滑过,事件是[object MouseEvent]
                }
            }
        });
    </script>
    </html>

    四 事件修饰符

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>index4</title>
    </head>
    <body>
        <div id="app4">
            <button @click.stop="sayHi('你好')">说你好</button> <!-- 阻止单击事件冒泡  原生事件:e.stoppropagation() -->
            <button @click.prevent="sayHi('你好')">说你好</button> <!-- 提交事件不再重载页面 阻止默认事件 -->
            <button @click.stop.prevent="sayHi('你好')">说你好</button> <!-- 阻止单击事件冒泡和提交事件不再重载页面 -->
            <button @click.capture="sayHi('你好')">说你好</button>  <!-- 添加事件侦听器时使用 capture 模式 -->
            <button @click.self="sayHi('你好')">说你好</button>    <!-- 只当事件在该元素本身(而不是子元素)触发时触发回调 -->
    
            <div @keyup.13="sayHi('你好')">说你好</div>  <!-- 只有在 keyCode 是 13 时调用 vm.submit() -->
        </div>
    </body>
      <script src="../js/vue.min.js"></script>
      <script type="text/javascript">
        var myVue = new Vue({
            el: '#app4',
            methods: {      //这里使用methods
                sayHi: function (message) {
                    alert(message)
                }
            }
        })
    </script>
    </html>

    五 系统修饰符(键盘事件)

    <template>
      <div>
        <label>enter键:
            <input type="text" @keyup.enter="sayHi"/>
        </label>
        <label>down键:
            <input type="text" @keyup.down="sayHi"/>
        </label>
        <label>up键:
            <input type="text" @keyup.up="sayHi"/>
        </label>
        <label>left键:
            <input type="text" @keyup.left="sayHi"/>
        </label>
        <label>right键:
            <input type="text" @keyup.right="sayHi"/>
        </label>
      </div>
    </template>
    <script>
    export default {
        data(){
          return{
    
          }
        },
        methods:{
          sayHi:function () {
            alert("我被点击了");
          }
        }
    }
    </script>

    配置键盘码(自定义):Vue.config.keyCodes.a=65   @keyup.a

    六 鼠标按键修饰符

    • .left
    • .right
    • .middle

    更多修饰符,之后工作中遇到一一实践。

  • 相关阅读:
    JS中所有数组的方法和所有的对象方法,包含ES5和ES6
    (原创!)彻底理解JS中的事件,事件处理函数,钩子函数,回调函数。
    深拷贝和浅拷贝的区别,object.assgin方法是深拷贝还是浅拷贝
    axios,Ajax,jQuery ajax,axios和fetch的区别
    python : 文档比较
    leetcode——989.数组形式的整数加法
    leetcode——66.加一
    leetcode——283.移动0
    leetcode——27.移除元素
    leetcode刷题第一天——两数之和
  • 原文地址:https://www.cnblogs.com/1156063074hp/p/10058984.html
Copyright © 2020-2023  润新知