capturar primero, burbujear después
La fase de captura: de afuera hacia adentro
La fase burbujeante: de adentro hacia afuera
desplazamiento: barra deslizante o teclas arriba y abajo para deslizar
La rueda se desliza, siempre que la rueda de desplazamiento se deslice, el evento se activa
Modificadores de eventos:
prevenir: prevenir el evento predeterminado (comúnmente utilizado)
detener: evitar la aparición de burbujas de eventos (comúnmente utilizado) varias ventanas emergentes
una vez: el evento solo se activa una vez (comúnmente utilizado)
captura: usa el método de captura del evento
self: el evento se activa solo cuando event.target es el elemento de la operación actual
pasivo: el comportamiento predeterminado del evento se ejecuta inmediatamente, sin esperar a que se complete la devolución de llamada del evento
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>事件的基本使用</title>
<!-- 引入Vue -->
<script type="text/javascript" src="../js/vue.js"></script>
<style>
*{
margin-top: 20px;
}
.demo1{
height:50x;
background-color:skyblue;
}
.box1{
padding:20px;
background-color:skyblue;
}
.box2{
padding:20px;
background-color:rgb(235, 135, 142);
}
.list{
width:200px;
height: 200px;
background-color: aqua;
overflow: auto;
}
li{
height: 100px;
}
</style>
</head>
<body>
<!-- 准备一个容器 -->
<div id="root">
<h2>欢迎来到{
{name}}学习</h2>
<!-- prevent:阻止默认事件(常用) -->
<a href="http://www.atguigu.com" @click.prevent="showinfo">点我提示信息</a>
<!-- stop:阻止事件冒泡(常用)多次弹窗 -->
<div class="demo1" @click="showinfo">
<button @click.stop="showinfo">点我提示信息</button>
</div>
<!-- once:事件只触发一次(常用)
点击事件,第一次触发弹窗,以后再点击不触发弹窗 -->
<button @click.once="showinfo">点我提示信息</button>
<!-- capture:使用事件的捕获方式 -->
<div class="box1" @click.capture="showmes(1)">
div1
<div class="box2" @click="showmes(2)">
div2
</div>
</div>
<!-- self:只有event.target是当前操作的元素时才触发事件 -->
<div class="demo1" @click.self="showinfo">
<button @click="showinfo">点我提示信息</button>
</div>
<!-- passive:事件的默认行为立即执行,无需等待事件回调执行完毕 -->
<ul @scroll="demo" class="list">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
</div>
<script type="text/javascript">
Vue.config.productionTip=false
new Vue({
el:'#root',
data:{
name:'尚硅谷'
},
methods:{
showinfo(){
alert('aihh')
},
showmes(mes){
console.log(mes)
},
demo(){
for(let i=0;i<100000;i++)
{
console.log('#')
}
console.log('累坏了')
}
}
})
</script>
</body>
</html>