23-Vue之事件修饰符

简介: 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>


相关文章
|
1天前
|
数据采集 JavaScript 前端开发
Vue框架的优缺点是什么
【7月更文挑战第5天】 Vue框架:组件化开发利于重用与扩展,响应式数据绑定简化状态管理;学习曲线平缓,生态系统丰富,集成便捷,且具性能优化手段。缺点包括社区规模相对小,类型支持不足(Vue 3.x改善),路由和状态管理需额外配置,SEO支持有限。随着发展,部分缺点正被克服。
7 1
|
1天前
|
JavaScript
Vue卸载eslint的写法,单独安装eslint,单独卸载eslint
Vue卸载eslint的写法,单独安装eslint,单独卸载eslint
|
1天前
|
JavaScript
青戈大佬安装Vue,无Eslint安装版,vue2安装,vue2无eslint,最简单配置Vue安装资料
青戈大佬安装Vue,无Eslint安装版,vue2安装,vue2无eslint,最简单配置Vue安装资料
|
1天前
|
JavaScript
This dependency was not found:* vue/types/umd in ./src/router/index.jsTo install it, you can run
This dependency was not found:* vue/types/umd in ./src/router/index.jsTo install it, you can run
This dependency was not found:* vue/types/umd in ./src/router/index.jsTo install it, you can run
|
1天前
|
JavaScript 前端开发 开发工具
如何学习vue框架
【7月更文挑战第5天】 - 先学HTML/CSS/JS基础和前端工程化工具(npm, webpack, Git)。 - 从Vue官方文档学习基础,包括指令、组件、响应式系统。 - 深入研究Vue Router和Vuex,掌握路由管理和状态管理。 - 学习自定义指令和Mixins,优化性能技巧。 - 实战项目练习,加入Vue社区,阅读相关资源,提升技能。 - 关注Vue生态,持续实践和创新,以适应不断发展的框架。
5 0
|
1天前
|
缓存 JavaScript 算法
vue 性能优化
vue 性能优化
10 0
|
2天前
|
JavaScript 前端开发 程序员
Vue组件化、单文件组件以及使用vue-cli(脚手架)
Vue组件化、单文件组件以及使用vue-cli(脚手架)
12 0
|
2天前
|
JavaScript API
Vue数据动态代理机制的实现以及响应式与数据劫持
Vue数据动态代理机制的实现以及响应式与数据劫持
6 0
|
2天前
|
JavaScript 前端开发 程序员
Vue指令的使用以及自定义指令
Vue指令的使用以及自定义指令
7 0
|
2天前
|
JavaScript 前端开发 程序员
Vue2入门(安装Vue、devtools,创建Vue)以及MVVM分层思想
Vue2入门(安装Vue、devtools,创建Vue)以及MVVM分层思想
7 0