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

【金秋打卡】第15天 Vue3 + Typescript 从0到1开发通用基础组件(4-11)

标签:
活动

课程名称Vue3 + Typescript 从0到1开发通用基础组件

课程讲师:张轩

课程内容:

今天课程学习的主要知识点内容包括:
1、为页面添加点击事件的技巧;
2、在 setup 函数值中,使用组件对象(ref=xxx)的技巧;
3、判断点击事件是否落在本组件内的方法;

课程收获:

通过学习老师的视频课程和同学的公开笔记,主要收获如下:
一、为页面添加点击事件的技巧
需要注意,需要在 onMounted 方法中绑定 click 事件,然后在 onUnmounted 方法中需要移除的 click 事件。

  const handler = (e: MouseEvent) => {
    ......
  }
  onMounted(() => {
    document.addEventListener('click', handler)
  })
  onUnmounted(() => {
    document.removeEventListener('click', handler)
  })

二、在 setup 函数值中,使用组件对象(ref=xxx)的技巧
关键实现代码如下:

<template>
<div ref="dropdownRef">
  ......
</template>

<script lang="ts">
export default defineComponent({
  ......
  setup() {
    const dropdownRef = ref<null | HTMLElement>(null)
    ......
    return {
      ......,
      dropdownRef
    }
  }
})
</script>

关键点是 const dropdownRef = ref<null | HTMLElement>(null) 与 标签

中的 ref 的值要相同。

三、判断点击事件是否落在本组件内的方法
关键实现代码如下:

  const handler = (e: MouseEvent) => {
    if (dropdownRef.value) {
      if (!dropdownRef.value.contains(e.target as HTMLElement) && isOpen===true) {
        isOpen = false
      }
    }
  }

点击查看更多内容
TA 点赞

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

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

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

举报

0/150
提交
取消