欢迎光临散文网 会员登陆 & 注册

Vue从零开始总结13

2021-04-13 13:10 作者:忘魂儿  | 我要投稿

v-on修饰符,拓展

@事件.stop停止冒泡事件

如果没加的话

html中

<div id="test" @click="show1">
   啊啊啊啊啊
   <button @click="show2">测试</button>
</div>

js methods中

show1()
{
   console.log('div');
},
show2()
{
   console.log('btn');
}

如下图所示:


点击子元素,却同时输出了父子元素里的内容

我们想解决这个问题,只需要在HTML中

<div id="test" @click="show1">
   啊啊啊啊啊
   <button @click.stop="show2">测试</button>
</div>

效果如下:


当我们再去点'啊啊啊啊'时输出的就是父元素里的内容了

@事件.prevent阻止默认行为

当我们不使用prevent时

html中

<form action="yourWebServer">
   <input type="submit" value="提交">
</form>

点击之后页面自动提交给指定服务器


再我们加了之后,就不会自动提交,我们还可以在里面实现别的功能

<form action="yourWebServer">
   <input type="submit" value="提交" @click.prevent="sub">
</form>

sub()
{
   console.log('subPoint');
}

用户点击提交按钮。按理来说应该就反应一次,你这个咋还能一直点

那么我们就再加个once就好了,只响应一次嘛

<form action="yourWebServer">
   <input type="submit" value="提交" @click.once.prevent="sub">
</form>

之前都是鼠标的监听事件

这次我们不妨试试键盘的

<form action="yourWebServer">
   <input type="submit" value="提交" @click.once.prevent="sub">
   <input type="text" @keyup="sub">
</form>

效果如下:


我们不难发现它是统计每次键盘抬起的事件

如果你长按一个键,只能算是一次

还有一种特殊情况

@事件.enter键代码 只有按到指定按键才会触发

<form action="yourWebServer">
   <input type="submit" value="提交" @click.once.prevent="sub">
   <input type="text" @keyup.enter="sub">
</form>

还有最后一个组件化当中用到的@事件.native在后续我们再总结

Vue从零开始总结13的评论 (共 条)

分享到微博请遵守国家法律