v-on 绑定事件 事件修饰符

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            outline: 1px solid;
            /* border: 1px solid; */
        }
    </style>
</head>
<body>
    <!-- v层 -->
    <div id="app">
        <h3>{{name}}</h3>
        <button type="submit" v-on:click='submithandler("事件参数",$event)'>提交</button>
        <a href="http://163.com" @click.prevent='submithandler'>跳转</a>
        <a href="http://163.com" @click.prevent='btnFunc'>跳转2</a>
        <!-- 按键修饰符 -->
        <!-- key    keyCode -->
        <input type="text" @keydown.ycy="btnFunc">
        <input type="text" @keydown.13="btnFunc">
        <input type="text" @keydown.space="btnFunc">
        <input type="text" @keydown.enter="btnFunc">
        <input type="text" @keydown.q="btnFunc">
    </div>
    <script src="./vue.js"></script>
    <!-- 
        v-on
        绑定事件监听 表达式可以是一个方法或者一个内联语句
        在普通的html元素上 只能监听原生 dom事件
        用在自定义组件上时 可以监听子组件触发的自定义事件

        事件对象的接收:
            如果没有传参数 默认第一个参数接收
            如果传入了参数 那么需要传递$event 在函数体需要使用相应形参接收
        m 数据模型层 v 视图层 vm 监听m层和v层

        使用object.defineProperty 进行数据劫持 setter 方法 
        一种发布订阅模式 去通知他改变试图

        按键修饰符
        prevent 阻止默认事件
        
     -->
    <script>
        // 自定义按键修饰符
        Vue.config.keyCodes.ycy = 13;
        // vm层
        const vm = new Vue({
        el:'#app',//vue指定挂载的区域 vue编译的范围
        // m层
        data:{//数据层 储存数据 相当于m层 数据模型 model    
            name:'ycy',
            // btnFunc:function(){
            //     console.log('按钮方法')
            // }
            btnFunc(e){
                if( e.type == 'keydown' ) console.log('enter',e)
                else  console.log('按钮方法',e)
            }
        },
        methods: {//函数方法
            submithandler(item,e){
                console.log('submit',item || {},e || {},e ?? '未定义')
                console.log(Vue)
                this.name = 'change'
            }
        },
    });
    </script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值