vue.js中如何绑定事件?

vue.js中如何绑定事件?下面本篇文章给大家介绍一下vuejs中的事件绑定。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

vuejs中的事件绑定,使用<v-on:事件名 = 函数名>来完成的,这里函数名是定义在Vue实例中的methods对象中的,Vue实例可以直接访问其中的方法。

事件绑定方式

1、 直接在标签中写js方法

 <button v-on:click="alert('hi')">执行方法的第一种写法</button>

2、调用method的办法

<button v-on:click="run()">执行方法的第一种写法</button>
<button @click="run()">执行方法的 简写 写法</button>
export default {     
      data () { 
        return {
          msg: '你好vue',
          list:[]      
        }
      },
      methods:{
           run:function(){
              alert('这是一个方法');
             }
           }
 }

(1)方法传参,方法直接在调用时在方法内传入参数

<button @click="deleteData('111')">执行方法传值111</button>
<button @click="deleteData('222')">执行方法传值2222</button>

(2)传入事件对象

<button data-aid='123' @click="eventFn($event)">事件对象</button>
eventFn(e){
          console.log(e);
          // e.srcElement  dom节点
          e.srcElement.style.background='red';
          console.log(e.srcElement.dataset.aid);  /*获取自定义属性的值*/
        }

事件修饰符

1、stop //阻止事件继续传播 即阻止它的捕获和冒泡过程

方法一: @click='show($event)' 我们有了事件对象后,我们函数中是不是就可以利用原生中的e.cancelBubble=true;

方法二: @click.stop='show()' 只要在事件后面加 .stop 就可以阻止事件冒泡

举个例子:

实例:如下点击内部点击,阻止了冒泡过程,即只执行tz这个方法,如果不加.stop,先执行tz方法,后执行gett方法。即通过了冒泡这个过程。

<div v-on:click="gett">
   外部点击
   <div  v-on:click.stop="tz">内部点击</div>
</div>

2、prevent //阻止默认事件:

方法一: @click='show($event)' 我们有了事件对象后,我们函数中是不是就可以利用原生中的 e.preventDefault();

方法二: @click.prevent='show()' 只要在事件后面加 .prevent 就可以阻止默认事件。

举个例子:阻止了a标签的默认刷新

<a href="" v-on:click.prevent>点击</a>

3、capture // 添加事件监听器时使用事件捕获模式,即在捕获模式下触发

实例:在点击最里层的点击6时,gett方法先执行,因为gett方法在捕获模式执行的,先与冒泡事件。下列执行顺序 geet->set->tz ,因为后俩个还是冒泡模式下触发的事件。

<div v-on:click.capture="gett">外部点击5
<div  v-on:click="tz">内部点击5
<div  v-on:click="set">点击6</div>
</div>
</div>

4、self //当前元素自身时触发处理函数时才会触发函数

原理:是根据event.target确定是否当前元素本身,来决定是否触发的事件/函数

实例:如果点击内部点击2,冒泡不会执行gett方法,因为event.target指的是内部点击2的dom元素,不是外部点击1的,所以不会触发自己的点击事件。

<div v-on:click.self="gett">
外部点击1
<div  v-on:click="tz">内部点击2</div>
</div>

5、once //只触发一次

实例:

<div  v-on:click.once="tz">once</div>

6、键盘事件

方法一:@keydown='show()' 当然我们传个$event 也可以在函数中获 ev.keyCode

if(ev.keyCode==13){
alert('你按了回车键!')
}

方法二:

  <input type="text" @keyup.enter="show()">回车执行
  <input type="text" @keydown.up='show()' >上键执行
  <input type="text" @keydown.down='show()' >下键执行
  <input type="text" @keydown.left='show()'    >左键执行
  <input type="text" @keydown.right='show()'   >右键执行

更多web前端开发知识,请查阅 HTML中文网 !!

以上就是vue.js中如何绑定事件?的详细内容,更多请关注web前端其它相关文章!

赞(0) 打赏
未经允许不得转载:web前端首页 » Vue.js 答疑

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏