• 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("按了回车");
          
        }
        
      }
    }
  • 相关阅读:
    关于oc中自动引用计数 小结
    xcode6中导航栏 控制view用程序编写
    oc中深拷贝与浅拷贝
    关于c语言 指针课堂随笔
    oc中设置手动引用和自动引用图解
    利用xcode6做出牛的一逼的计算器
    利用xcode6 使用代码写出英格兰国旗
    oc中字典的应用详解
    c和oc排序程序与见解
    关于Xcode6beta2 新学者使用 工程的建立
  • 原文地址:https://www.cnblogs.com/yangWanSheng/p/15841503.html
Copyright © 2020-2023  润新知