vue基础入门(2.1)

2.vue基础用法

2.1.事件处理

2.1.1.监听事件

使用v-on:事件名称 = '事件处理函数'的形式来监听事件,事件处理函数要写在methods后面的对象中

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <button v-on:click="say">按钮</button>
</div>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
    new Vue({
        el:'#app',
        data: {
            message:'hello,nodeing'
        },
        methods:{
            say(){
                alert(this.message)
            }
        }
    })
</script>
</body>
</html>

如果事件处理函数需要传参数的话,可以写成这样:

<button v-on:click="say('hi')">按钮</button>

2.1.2.事件修饰符

事件修饰符是帮助我们去处理事件相关细节的,例如,防止事件冒泡、阻止系统默认行为等,以前我们需要使用event.stopPropagation()、event.preventDefault()去实现,在vue中有更简洁的使用方式,.stop、.prevent就可以搞定,这样在方法中就只需要关注业务逻辑,不需要去关注事件细节了

1 .stop修饰符,阻止事件冒泡

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #box{
            width: 300px;
            height: 300px;
            background-color: orangered;
        }
        #box-inner{
            width: 100px;
            height: 100px;
            background-color: green;
        }
    </style>
</head>
<body>
<div id="app">
    <div id="box" v-on:click="out">
        <div id="box-inner" v-on:click.stop="inner"></div>
    </div>
</div>

<script src="node_modules/vue/dist/vue.js"></script>
<script>
    new Vue({
        el:'#app',
        data: {
            message:'hello,nodeing'
        },
        methods:{
            inner(){
                alert('inner')
            },
            out(){
               alert('out')
            }
        }
    })
</script>
</body>
</html>

2 .prevent 阻止默认行为

<a href="http://baidu.com" v-on:click.prevent>百度一下</a>

3 .capture 事件捕获

<div id="app">
    <div id="box" v-on:click.capture="out">
        <div id="box-inner" v-on:click="inner"></div>
    </div>
</div>

4 .self 事件源是自身的时候触发

 <div id="box" v-on:click.self="out">
    <div id="box-inner" v-on:click="inner"></div>
</div>

5 .once 只触发一次

<div id="app">
    <div id="box" v-on:click="out">
        <div id="box-inner" v-on:click.once="inner"></div>
    </div>
</div>

螺钉课堂视频课程地址:http://edu.nodeing.com

猜你喜欢

转载自www.cnblogs.com/dadifeihong/p/12035141.html
今日推荐