Vue事件处理

image.png

三种方式

        <button @click="handleClick1()">click1-通过函数调用</button>
        <button @click="handleClick2">click2-通过函数名</button>
        <button @click=" count++ ">click3-通过表达式</button>

不加括号能获取事件源

<input type="text" @input="handleInput">
        <div>{{ text }}</div>
        <!-- 不加括号会传将事件对象 -->

 handleInput(ev) {
                    // 获取事件源 ev.target
                    // 获取事件值 ev.target.value
                    this.text = ev.target.value 
                }

实现输入和同步的功能
image.png

即想传参又想传事件对象

<input type="text" @input="handleInput($event, 'fbb')">
加上$说明不是随随便便的参数 是把事件对象传出来

事件修饰符

事件冒泡

        <ul @click="handleUlClick">
            <li @click="handleLiClick">11111</li>
            <li @click="handleLiClick">11111</li>
            <li @click="handleLiClick">11111</li>
        </ul>
    <script>
                handleUlClick() {
                    console.log("ul-父级触发")
                },
                handleLiClick() {
                    console.log("li-子级触发")
                }

    </script>
冒泡触发

阻止冒泡

方法一. ev.stopPropagation() //阻止冒泡
方法二. <li @click.stop="handleLiClick">11111</li>
<ul @click.self="handleUlClick">
stop 和 self Vue提供的事件修饰符

查看》Vue提供的事件修饰符

例如:

 <a href="http://www.baidu.com" @click.prevent="handleAClick"> 跳转页面 </a>
        <!-- @click.prevent 阻止默认行为 a标签的跳转 -->
 
 <button  @click.once="handleBtnClick">点击</button>
        <!-- @click.once点完一次立即解绑 -->

按键修饰符

 <P>回车提交<input type="text" v-model="myText" @keydown.enter="handleKeyDown"></P>
 --@keydown.enter 点击回车触发函数
 ---可以根据键值触发函数
----@keydown.87 是 w 
----等等。。。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容