为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第8天 Vue3框架

标签:
Vue.js

课程名称:2022持续升级 Vue3 从入门到实战 掌握完整知识体系

课程章节:第2章 Vue 基础语法

主讲老师:Dell

课程内容:

今天学习的内容包括:

  • 事件绑定click

  • 绑定多个事件

  • event

  • 事件修饰符

  • @click.prevent

  • @click.stop

  • @click.self

  • @click.once

  • @scroll.passive

  • 按键修饰符

  • 鼠标修饰符

  • 多个键值绑定

  • 指定鼠标键值点击

  • 精确匹配修饰符exact

  • 编程练习

课程收获:

点击按钮,使结果自增1

<!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>事件绑定</title>

  <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="https://unpkg.com/vue@next"></script>

</head>

<body>

  <div id="root"></div>

</body>

  <script>

    const app = Vue.createApp({

      data() {

        return {

          number: 1,

        }

      },

      methods: {

        handleBtnClick() {

          this.number += 1;

        }

      },

      template: `

        <div>{{number}}</div>

        <button @click="handleBtnClick">按钮</button>

      `

    })


    const vm = app.mount('#root');

  </script>

</html>


https://img1.sycdn.imooc.com//631ec78d0001a83706280389.jpg

https://img1.sycdn.imooc.com//631ec79a00012f4b05000103.jpg

在调用事件传入参数2,使结果自增2

     methods: {

        handleBtnClick(num) {

          this.number += num;

        }

      },

      template: `

        <div>{{number}}</div>

        <button @click="handleBtnClick(2)">按钮</button>

      `

https://img1.sycdn.imooc.com//631ec803000147c405790432.jpg

https://img1.sycdn.imooc.com//631ec7f20001d26a06600178.jpg

使用表达式也可以使结果自增1,但是写的内容非常有限,所以不太建议用这种方式

        <button @click="number += 1">按钮</button>

https://img1.sycdn.imooc.com//631ec87000012ad404060102.jpg

https://img1.sycdn.imooc.com//631ec8630001c13206620138.jpg


当我们点击按钮的时候会触发一个事件对象event

https://img1.sycdn.imooc.com//631ec9c40001396804930233.jpg

https://img1.sycdn.imooc.com//631ec9fe0001927b05690345.jpg

我们一般使用的是event.target事件对象

https://img1.sycdn.imooc.com//631eca3a00012ddd06360302.jpg

传参数同时获取event原生对象,要在参数写$event进行获取

https://img1.sycdn.imooc.com//631ecaa80001c99b05730270.jpg

https://img1.sycdn.imooc.com//631eca9f0001dca407600315.jpg

如果同时绑定两个时间函数.不仅仅用,隔开还要加上()

https://img1.sycdn.imooc.com//631ecb6d00013bdd07500331.jpg

https://img1.sycdn.imooc.com//631ecd4c0001908a04620188.jpg

点击冒泡

当我点击按钮的时候,会自下而上的冒泡的触发事件,需要在click后面添加click.stop进行阻止向上冒泡

          <button @click.stop="handleBtnClick">按钮</button>

https://img1.sycdn.imooc.com//631ecd970001b3b304610195.jpg

当我们事件嵌套的时候,点击外层事件会触发到内层事件,我们需要进行设置click.self,当我们只点击自己本身元素的时候才会触发,子标签元素触发是不会执行的.

https://img1.sycdn.imooc.com//631ecf210001595f05170182.jpg

https://img1.sycdn.imooc.com//631ecea00001662804760162.jpg

还要上次使用的@click.prevent阻止默认行为的修饰符

@click.capture从运营模式到捕获模式,冒泡是指从内到外,捕获是指从外到内.

@click.once指的是这个点击事件只执行一次

@scroll.passive提升滚动性能


总结  

① 传递参数的同时还需要传递事件对象则要通过$event来传递事件对象给函数接收   click(1,$event)      

② 绑定多个事件时要用逗号分隔并且带上括号才能生效   @click='click1(),click2()'  

③ 事件修饰符        

@click.stop 可以禁止事件冒泡       

@click.self   点击子元素不会触发自身事件,只有点击自身元素时才会触发       

@click.once 事件只会执行一次       

@scroll.passive 可以提升滚动性能


按键修饰符

当我们按下键盘的时候会触发

https://img1.sycdn.imooc.com//631ed7cc0001ca5e05500411.jpg

https://img1.sycdn.imooc.com//631ed7f50001b01706960274.jpg

keydown.enter当我们按下enter的时候才会触发

https://img1.sycdn.imooc.com//631ed84d0001a38107130297.jpg

https://img1.sycdn.imooc.com//631ed84700018dcd07640316.jpg

总结

    // 按键修饰符: enter, tab, delete, esc, up, down, left, right

    // 鼠标修饰符: left, right, middle

    // 多个键值绑定.ctrl.alt

    // 鼠标键值点击,click.left(鼠标左键),click.right(鼠标有键),click.middle(鼠标中间滚轮)

    // 精确匹配修饰符@click.ctrl.exact(按ctrl健+点击的时候才会触发)

今天学习了事件绑定等相关的指令,今天也是收获满满的一天,希望能够每天学习一点点,一直坚持下,加油!         


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
9
获赞与收藏
42

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消