我是靠谱客的博主 会撒娇鸡,最近开发中收集的这篇文章主要介绍关于Vue的事件冒泡【html,stop】,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

事件冒泡

最近看到关于事件冒泡,于是进行了实验。整个测试基于HTML,不是一个完整项目
先写代码如下

<!DOCTYPE html>
<html lang='zh_cn'>

<head>
    <meta charset='UTF-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <meta name='viewport' content='width=device-width', initial-scale='1.0'>
    <title>Vue 阻止事件冒泡</title>
    <script src='https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js'></script>
</head>

<body>
    <div id='app'>
       <div class="parent" @click="doParent">
           <button @click="doThis">点我,事件冒泡</button>
       </div>
    </div>

    <script>
        var vm = new Vue({
            el:'#app',
            data:{
              
            },
            methods:{
                doParent() {
                    console.log("父元素被点击了");
                },
                doThis() {
                    console.log("子元素被正常点击");
                }
            },
        })
    </script>

</body>

</html>

现在我对父元素和子元素都设置了@click,触发结果如下
请添加图片描述

复杂的页面结构需要很多事件来完成交互行为,默认的事件传递方式就是冒泡
所以同一事件类型会在元素内部和外部触发

阻止事件冒泡

现在我想尝试阻止事件之间的冒泡传递,新增加一个button,@click触发同一个方法,不过加上一个.stop

<button @click.stop="doThis">点我,就只是点我 </button>

现在的实现效果为
请添加图片描述
所以现在我成功阻止了事件的冒泡。
思考
html中演示的实例只是单个页面之间的事件冒泡传递,但是其实在Vue项目中的子父组件方法的传递也是如此,先触发子组件中的方法,后向上冒泡触发父组件中的方法!

最后

以上就是会撒娇鸡为你收集整理的关于Vue的事件冒泡【html,stop】的全部内容,希望文章能够帮你解决关于Vue的事件冒泡【html,stop】所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部