23-Vue之事件修饰符

Posted 爱学习de测试小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了23-Vue之事件修饰符相关的知识,希望对你有一定的参考价值。

事件修饰符


前言

  • 本篇来学习两个常用的事件修饰符

阻止默认行为

  • .prevent : 阻止默认行为
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>事件修饰符</title>
</head>
<body>
<div id="app">
    <p>message</p>
    <a href="https://blog.csdn.net/it_heima" @click="showMes">跳转小白的博客</a>
    <!--    .prevent阻止默认行为-->
    <a href="https://blog.csdn.net/it_heima" @click.prevent="showInfo">跳转小白的博客</a>
</div>

<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

<script>
    // 创建vue的实例对象
    const app = new Vue(
        // el 属性是固定写法,表示当前vue实例要控制页面上的哪个区域,接收的值是一个选择器
        el: '#app',
        // data对象是要渲染页面上的数据
        data: 
            message: '事件修饰符学习!'
        ,
        methods: 
            showMes(e) 
                console.log('被点击了!')
                // 原生 阻止默认行为写法,对应a标签来说就是阻止跳转
                e.preventDefault()
            ,
            showInfo() 
                console.log('被点击了!')
            
        
    );
</script>


</body>
</html>

阻止冒泡事件

  • .stop :阻止冒泡事件
  • 如下为未阻止冒泡事件示例
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>事件修饰符</title>
</head>
<body>
<div id="app">
    <p>message</p>
    <a href="https://blog.csdn.net/it_heima" @click="showMes">跳转小白的博客</a>
    <!--    .prevent阻止默认行为-->
    <a href="https://blog.csdn.net/it_heima" @click.prevent="showInfo">跳转小白的博客</a>

    <hr>

    <div style="height: 150px;background-color: orange;padding-left: 100px;line-height: 150px" @click="divHandler">
        <button @click="btnHandler">按钮</button>
    </div>
</div>

<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

<script>
    // 创建vue的实例对象
    const app = new Vue(
        // el 属性是固定写法,表示当前vue实例要控制页面上的哪个区域,接收的值是一个选择器
        el: '#app',
        // data对象是要渲染页面上的数据
        data: 
            message: '事件修饰符学习!'
        ,
        methods: 
            showMes(e) 
                console.log('被点击了!')
                // 原生 阻止默认行为写法,对应a标签来说就是阻止跳转
                e.preventDefault()
            ,
            showInfo() 
                console.log('被点击了!')
            ,
            btnHandler() 
                console.log('btn 点击事件')
            ,
            divHandler() 
                console.log('div 点击事件')
            
        
    );
</script>


</body>
</html>

  • 阻止冒泡事件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>事件修饰符</title>
</head>
<body>
<div id="app">
    <p>message</p>
    <a href="https://blog.csdn.net/it_heima" @click="showMes">跳转小白的博客</a>
    <!--    .prevent阻止默认行为-->
    <a href="https://blog.csdn.net/it_heima" @click.prevent="showInfo">跳转小白的博客</a>

    <hr>

    <div style="height: 150px;background-color: orange;padding-left: 100px;line-height: 150px" @click="divHandler">
        <button @click="btnHandler">按钮</button>
        <button @click.stop="btnHandler1">按钮</button>
    </div>
</div>

<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

<script>
    // 创建vue的实例对象
    const app = new Vue(
        // el 属性是固定写法,表示当前vue实例要控制页面上的哪个区域,接收的值是一个选择器
        el: '#app',
        // data对象是要渲染页面上的数据
        data: 
            message: '事件修饰符学习!'
        ,
        methods: 
            showMes(e) 
                console.log('被点击了!')
                // 原生 阻止默认行为写法,对应a标签来说就是阻止跳转
                e.preventDefault()
            ,
            showInfo() 
                console.log('被点击了!')
            ,
            btnHandler(e) 
                console.log('btn 点击事件')
                // 原生阻止冒泡事件
                e.stopPropagation()
            ,
            btnHandler1() 
                console.log('btn 点击事件1')
            ,
            divHandler() 
                console.log('div 点击事件')
            
        
    );
</script>


</body>
</html>

以上是关于23-Vue之事件修饰符的主要内容,如果未能解决你的问题,请参考以下文章

Vue指令之v-on的缩写和事件修饰符

Vue指令之v-on的缩写和事件修饰符

Vue之@click事件修饰符@click.stop与@click.prevent按键修饰符@keyup.enter

Vue之@click事件修饰符@click.stop与@click.prevent按键修饰符@keyup.enter

vue之.native修饰符

vue点击事件的修饰符