Vue事件修饰符和随机数

事件修饰符:自定义事件行为,配合v-on指令使用,事件后,用“.”符号连接。如“v-on:click.stop”阻止冒泡事件。
1、stop
用法:v-on:click.stop=“”
作用:发生点击事件时,阻止事件冒泡
代码:

    <div id="app">
        <div v-on:click="doParent">
            <button v-on:click="doThis">事件冒泡</button>
            <button v-on:click.stop="doThis">阻止事件冒泡</button>
        </div>
    </div>
    <script>
        var vm=new Vue({
            el: '#app',
            methods:{
                doParent(){
                    console.log('我是父元素单击事件');
                },
                doThis(){
                    console.log('我是被单机元素事件');
                }
            }
        });
    </script>

2、prevent
用法:v-on:click.prevent=“”
作用:发生点击事件时,阻止默认事件行为
代码:

    <div id="app">
        <a href="https://www.baidu.com" v-on:click.prevent>阻止默认行为</a>
        <a href="https://www.baidu.com">不阻止默认行为</a>
    </div>
    <script>
        var vm=new Vue({
            el: '#app'
        })
    </script>

3、capture
用法:v-on:click.capture=“”
作用:发生点击事件时,事件捕获
事件捕获的执行顺序是由外到内执行,与冒泡相反
代码:

    <div id="app">
        <div v-on:click.capture="doParent">
            <button v-on:click="doThis">事件捕获</button>
        </div>
    </div>
    <script>
           var vm=new Vue({
            el: '#app',
            methods:{
                doParent(){
                    console.log('我是父元素单击事件');
                },
                doThis(){
                    console.log('我是被单机元素事件');
                }
            }
        });
    </script>

4、self
用法:v-on:click.self =“”
作用:当点击本体时,才会正常触发,否则略过自己。
比如说他是父元素,当点击子元素时,正常冒泡,先输出子元素,在输出父元素,但是父元素设置了.self,于是只输出了子元素。
代码:

    <style>
        .Odiv1{
                width: 100px;height: 100px;background-color: blueviolet;margin: 5px;
        }
        .Odiv2{
            width: 50px;height: 50px;background-color: #ccc;
        }
    </style>
   <!-- click.self 若非点击自身,跳过当前元素继续冒泡 -->
    <div id="app">
        <div class="Odiv1" v-on:click.self="doParent">a
            <div class="Odiv2"  v-on:click="doThis">b</div>
        </div>
        <div class="Odiv1" v-on:click="doParent">c
            <div class="Odiv2"  v-on:click.self="doThis">d</div>
        </div>
    </div>
    <script>
        var vm=new Vue({
            el: '#app',
            methods:{
                doParent(){
                    console.log('父');
                },
                doThis(){
                    console.log('当前元素');
                }
            }
        })
    </script>

5、once
用法:v-on:click.once =“”
作用:只触发一次
代码:

    <!-- click.once 只执行一次事件 -->
    <div id="app">
        <button v-on:click.once="doThis">只执行一次</button>
    </div>
    <script>
        var vm=new Vue({
            el: '#app',
            methods:{
                doThis(){
                    console.log("我是当前元素的单击事件且只执行一次");
                }
            }
        })
    </script>

6、keyup.enter
用法:v-on:keyup.enter=“”
作用:当敲下回车键时,触发事件
代码:

    <div id="app">
        <!-- 绑定回车键 -->
        <input type="text" v-on:keyup.enter="submit">
    </div>
    <script>
        var vm=new Vue({
            el: '#app',
            methods:{
                submit(){
                    console.log('表单提交');
                }
            }
        });
    </script>

7、随机数
用法:Math.random()
作用:生成一个【0,1)的随机数
代码:

    <div id="app">
        <button v-on:click="count=Math.random()">随机数</button>
        <p>自动生成的随机数是{{count}}</p>
    </div>
    <script>
        var vm=new Vue({
            el: '#app',
            data: {
                count: 0
            }
        })
    </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值