不积跬步,无以至千里;不积小流,无以成江海。

 

Vuejs语言基础

 

事件修饰符:

事件监听可以使用 v-on 指令,而事件修饰符来处理 DOM 事件细节。

 

stop 修饰符:

阻止冒泡(通俗讲就是阻止事件向上级DOM元素传递):

<template>
    <div>
        <div style="width: 500px; height: 500px" @click="outClick">
            <div style="width: 200px; height: 200px" @click="innerClick"></div>
        </div>      
    </div>
</template>

<script>
export default {
    methods: {
        outClick(){
            console.log('this is outer')
        },
        innerClick(){
            console.log('this is inner')
        }
    }
}
</script>

 点击内层 div 的结果:

this is inner
this is outer

 点击外层 div 的结果:

this is outer

 修改代码,为内层点击事件添加事件".stop"修饰符:

<div style="width: 200px; height: 200px" @click.stop="innerClick"></div>

 再次点击内层div的结果如下:

this is inner

 

prevent 修饰符:

阻止默认事件的发生,默认事件指对DOM的操作会引起自动执行的动作(点击超链接的时候会进行页面的跳转,点击表单提交按钮时会重新加载页面等)。

<a href="www.baidu.com" @click.prevent>百度</a>

 

capture 修饰符:

捕获冒泡,即有冒泡发生时,有该修饰符的dom元素会先执行,如果有多个,从外到内依次执行,然后再按自然顺序执行触发的事件。

<template>
    <div>
        <div style="width: 500px; height: 500px" @click.capture="outClick">
            <div style="width: 200px; height: 200px" @click="innerClick">
                <div style="width: 100px; height: 100px" @click="mostInnerClick"></div>
            </div>
        </div>      
    </div>
</template>

<script>
export default {
    methods: {
        outClick(){
            console.log('this is outer')
        },
        innerClick(){
            console.log('this is inner')
        },
        mostInnerClick(){
            console.log('this is most inner')
        }
    }
}
</script>

点击最内层div,结果如下:

this is outer
this is most inner
this is inner

 

self 修饰符:

将事件绑定到自身,只有自身才能触发,通常用于避免冒泡事件的影响

<template>
    <div>
        <div style="width: 500px; height: 500px" @click="outClick">
            <div style="width: 200px; height: 200px" @click.self="innerClick">
                <div style="width: 100px; height: 100px" @click="mostInnerClick"></div>
            </div>
        </div>      
    </div>
</template>

 点击最内层div,结果如下:

this is most inner
this is outer

 

once 修饰符:

设置事件只能触发一次,比如按钮的点击等。

 

native 修饰符:

在父组件中给子组件绑定一个原生的事件,就将子组件变成了普通的HTML标签,不加 native修饰符的事件是无法触发的。

…
<my-child @click="outClick"></my-child>    
…

<script>
export default {
    methods: {
        outClick(){
            console.log('this is outer')
        }
    },
    components: { MyChild },
}
</script>

 此时无法触发点击事件


… <my-child @click.native="outClick"></my-child> … <script> export default { methods: { outClick(){ console.log('this is outer') } }, components: { MyChild }, } </script>

 此时可以触发点击事件

 

 

博客借鉴:https://www.cnblogs.com/xiaoyaoxingchen/p/10405207.html

posted on 2020-10-23 22:20  smile学子  阅读(133)  评论(0编辑  收藏  举报