• Vue学习三、事件方法、监听、传值


    一、方法基本用法 传参, dom对象

      监听方法可以使用v-on 或者使用简写@ 符号代替

    <template>
      <div>
       <input type="button" @click="getMsg" value="获取msg">
       <br/>
       <input type="text" v-model="msg">
       <!-- 执行方法传入参数 -->
       <input type="button" @click="setMsg('修改内容')" value="修改msg">
       <br/>
       <!-- 调用一个run方法,引发其他方法 -->
        <input type="button" @click="run" value="调用run方法">
        <br/>
        <!-- 传入点击节点对象 注意传入点击对象$event是固定-->
        <input type="button" data-id="1001" @click="evenF($event)" value="获取节点对象">
        <br/>
        <!-- 如果多个参数并且要作为最后一个参数 -->
        <input type="button" @click="warn('001', $event)" value="多个参数">
      </div>
    </template>
    
    <script>
    export default {
      name: 'App',
      data() {
        return {
          msg: "我是一个标题"
        }
      },
      methods: {
        getMsg() {
          alert(this.msg);
        },
        setMsg(str) {
          this.msg = str;
        },
        run() {
          this.getMsg(); // 调用其他方法
        },
        evenF(e) {
          console.log(e);
          var id = e.srcElement.dataset.id;// 获取data-id属性值
          console.log(id);
          e.preventDefault(); // 阻止默认事件
          e.stopPropagation();// 阻止冒泡事件
        },
        warn(id, e){
          console.log(id); // 参数id
          console.log(e); // 事件dom对象
        }
        
      }
    }
    </script>

    二、多事件处理程序

    template>
      <div>
       <input type="button" @click="one(),two()" value="绑定多个方法">
      </div>
    </template>
    
    <script>
    export default {
      name: 'App',
      data() {
        return {
          msg: "我是一个标题"
        }
      },
      methods: {
        one() {
          console.log("one");
          
        },
        two() {
          console.log("two");
          
        }
        
      }
    }
    </script>

    三、vue的事件修饰符

    vue 中给我们提供了很多修饰符
    .stop  --阻止冒泡事件
    .prevent  -- 去除默认事件
    .capture
    .self
    .once
    .passiv
    <template>
      <div>
       <a href="https://www.baidu.com/" @click.prevent="one()">链接1</a>
       <a href="https://www.baidu.com/" @click.stop="two()">链接2</a>
      </div>
    </template>
    
    <script>
    export default {
      name: 'App',
      data() {
        return {
          msg: "我是一个标题"
        }
      },
      methods: {
        one() {
          console.log("one");      
        },
        two() {
          console.log("two");      
        }
        
      }
    }

    四、按键修饰符

    监听键盘事件时,Vue允许在监听关键事件时v-on或@在监听关键事件时
    添加案件修饰符:
    .enter
    .tab
    .delete
    .esc
    .space
    .up
    .down
    .left
    .right

    原本方法监听按了回车按键, 会一直触发函数

    <template>
      <div>
        <input type="text" @keyup="doSearch($event)" />
      </div>
    </template>
    
    <script>
    export default {
      name: 'App',
      data() {
        return {
          msg: "我是一个标题"
        }
      },
      methods: {
        doSearch(e){
          console.log("键盘按键code", e.keyCode);   
          if (e.keyCode == 13) {
            alert("按了回车");
          }   
        }
        
      }
    }

    使用按键修饰符后,只有按了回车键才会触发

    <template>
      <div>
        <input type="text" @keyup.enter="doSearch()" />
      </div>
    </template>
    
    <script>
    export default {
      name: 'App',
      data() {
        return {
          msg: "我是一个标题"
        }
      },
      methods: {
        doSearch(){
         
            alert("按了回车");
          
        }
        
      }
    }
  • 相关阅读:
    后台架构设计—数据存储层
    Linux应用程序基础
    Linux文件管理命令笔记
    CentOS7搭建LAMP实战
    (ospf、rip、isis、EIGRP)常见的动态路由协议简介
    python while 循环语句
    获取linux帮助命令
    破解linux虚拟机的密码
    gawk编程语言
    MySQL触发器在PHP项目中用来做信息备份、恢复和清空的方法介绍
  • 原文地址:https://www.cnblogs.com/yangWanSheng/p/15841503.html
Copyright © 2020-2023  润新知