vue基本知识 阻止默认行为和事件冒泡

`
一,事件
$event:vue的内置对象

原生js阻止事件冒泡

<body>
    <div id="myApp" @click="show2()">
        <div @click="show1()">
            <button @click="show($event)">点我</button>
        </div>
    </div>
</body>
<script>
        window.onload=function(){
            let vm=new Vue({
                el:'#myApp',
                data:{ 
                },
                methods:{ 
                    show(e){
                        e.stopPropagation();//原生阻止冒泡事件
                        console.log("111")
                    },
                    show1(){
                        console.log("222")
                    },
                    show2(){
                        console.log("333")
                    },
                }
            });
        }
    </script>

vue阻止事件冒泡

<body>
    <div id="myApp" @click="show2()">
        <div @click="show1()">
            <button @click.stop="show">vue点我</button>
        </div>
    </div>
</body>
<script>
        window.onload=function(){
            let vm=new Vue({
                el:'#myApp',
                data:{ 
                },
                methods:{ 
                    show(){
                      console.log("111")
                    },
                    show1(){
                        console.log("222")
                    },
                    show2(){
                        console.log("333")
                    },
                }
            });
        }
    </script>
总结:
1.js阻止事件冒泡,获取点击对象,  e.stopPropagation();
2.vue阻止事件冒泡@click.stop="show",
3.vue有许多的内置属性

v-on的修饰符

<!-- 方法处理器 -->
<button v-on:click="doThis"></button>
<!-- 对象语法 (2.4.0+) -->
<button v-on="{ mousedown: doThis, mouseup: doThat }"></button>
<!-- 内联语句 -->
<button v-on:click="doThat('hello', $event)"></button>
<!-- 缩写 -->
<button @click="doThis"></button>
<!-- 停止冒泡 -->
<button @click.stop="doThis"></button>
<!-- 阻止默认行为 -->
<button @click.prevent="doThis"></button>
<!-- 阻止默认行为,没有表达式 -->
<form @submit.prevent></form>
<!--  串联修饰符 -->
<button @click.stop.prevent="doThis"></button>
<!-- 键修饰符,键别名 -->
<input @keyup.enter="onEnter">
<!-- 键修饰符,键代码 -->
<input @keyup.13="onEnter">
<!-- 点击回调只会触发一次 -->
<button v-on:click.once="doThis"></button>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,072评论 0 29
  • 1.安装 可以简单地在页面引入Vue.js作为独立版本,Vue即被注册为全局变量,可以在页面使用了。 如果希望搭建...
    Awey阅读 11,071评论 4 129
  • 下载安装搭建环境 可以选npm安装,或者简单下载一个开发版的vue.js文件 浏览器打开加载有vue的文档时,控制...
    冥冥2017阅读 6,078评论 0 42
  • Vue 实例 属性和方法 每个 Vue 实例都会代理其 data 对象里所有的属性:var data = { a:...
    云之外阅读 2,233评论 0 6
  • 所有都是有因果的当做小说休闲看看哈 轻喷莫担心我很好~ 工作一年了…………突然发现我也还没能适应这个窗口单位…刚开...
    2a295f061dfa阅读 433评论 0 0