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("按了回车");
      
    }
    
  }
}

 

 

posted @ 2022-01-25 22:56  花先生。  阅读(607)  评论(0编辑  收藏  举报