当前位置: 首页 > wzjs >正文

招聘网站销售怎么做搜索引擎优化的主要手段

招聘网站销售怎么做,搜索引擎优化的主要手段,静态网页设计报告,企业模板网站建设优势分析React vs Vue:点击外部事件处理的对比与实现 在 Web 应用中,“点击外部事件监听”是一种常见需求,典型应用如:点击弹窗外部关闭弹窗、点击下拉菜单外关闭菜单。虽然在 React 和 Vue 中实现的原理类似——都是通过监听 document 的…

React vs Vue:点击外部事件处理的对比与实现

在 Web 应用中,“点击外部事件监听”是一种常见需求,典型应用如:点击弹窗外部关闭弹窗、点击下拉菜单外关闭菜单。虽然在 React 和 Vue 中实现的原理类似——都是通过监听 document 的点击事件并判断点击是否在目标元素外,但在两者框架中的编码方式和理念却有所不同。


📦 原理一致:判断是否点击在目标元素外

无论使用 Vue 还是 React,核心逻辑都是:

function isClickOutside(el: HTMLElement, target: EventTarget | null) {return el && target && !el.contains(target as Node)
}

这段逻辑判断点击的目标是否在 el 外部。


🔷 React 实现方式:使用 Hook

React 倾向于函数式和组合式思维,处理副作用的方式是通过 useEffect() 来注册和销毁事件。

import { useEffect, RefObject } from 'react'export function useClickOutside(ref: RefObject<HTMLElement>, handler: (e: MouseEvent) => void) {useEffect(() => {const listener = (e: MouseEvent) => {if (!ref.current || !isClickOutside(ref.current, e.target)) returnhandler(e)}document.addEventListener('mousedown', listener)return () => document.removeEventListener('mousedown', listener)}, [ref, handler])
}

使用方式

const ref = useRef(null)
useClickOutside(ref, () => console.log('clicked outside'))
  • ✅ 基于组件级 Hook
  • ✅ 支持函数依赖管理
  • ✅ 可按需组合并复用

🔶 Vue 实现方式:组合式 API + 自定义指令

Vue 提供两种实现路径:组合式 API(Composition API)和自定义指令(Directives)。

方法一:组合式 API

import { onMounted, onBeforeUnmount } from 'vue'export function useClickOutsideVue(elGetter: () => HTMLElement | null, handler: (e: MouseEvent) => void) {const listener = (e: MouseEvent) => {const el = elGetter()if (!el || !isClickOutside(el, e.target)) returnhandler(e)}onMounted(() => document.addEventListener('click', listener))onBeforeUnmount(() => document.removeEventListener('click', listener))
}

方法二:自定义指令

export const vClickOutside = {mounted(el: HTMLElement, binding: any) {el.__ClickOutside__ = (e: MouseEvent) => {if (isClickOutside(el, e.target)) {binding.value(e)}}document.addEventListener('click', el.__ClickOutside__)},unmounted(el: HTMLElement) {document.removeEventListener('click', el.__ClickOutside__)}
}

使用方式

<template><div v-click-outside="onClose">弹窗</div>
</template>
  • ✅ 更贴合模板语法
  • ✅ 易于在 UI 层应用
  • ✅ 可复用在多个 DOM 元素上

🔍 对比总结

对比项ReactVue
使用方式Hook(函数式组合)Composition API / 指令
生命周期处理useEffect 管理副作用onMounted / onBeforeUnmount
可读性适合开发者组织逻辑更贴近模板,写法语义直观
复用性Hook 可组合指令可复用在多个模板元素上
构建风格以 JS 逻辑为中心以模板交互为中心

✅ 最佳实践建议

项目类型推荐实现方式
React 应用useClickOutside hook
Vue3 + 组合式项目useClickOutsideVue hook
Vue2 / 模板为主项目v-click-outside 指令

通过合理封装点击外部事件监听逻辑,可以在保持代码整洁的同时,提升组件交互体验与可维护性。

http://www.dtcms.com/wzjs/517417.html

相关文章:

  • 婚纱摄影网站开发百度地图排名怎么优化
  • 网络营销网站建设实训百度推广登录官网
  • 做的最好的网站网站推广网站
  • 西安知名网站建设公司网站开发的步骤
  • wordpress丢失网络链接衡水seo排名
  • 知识营销郑州seo网络营销
  • 建设网站的命令浙江seo博客
  • 外星人建设的网站站长工具箱
  • 网站安装步骤页面360安全浏览器
  • 东坑镇网站仿做国内电商平台有哪些
  • 连衣裙一起做网站网站快速推广
  • 自己做的网站如何用手机去查看福州网站优化
  • 中国建设工程监理协会网站win10优化工具下载
  • sketch代替ps做网站网络营销推广计划书
  • 怎样在阿里做网站公司怎么在网上推广
  • wordpress建站方法优化大师电脑版官方免费下载
  • 通过wordpress小程序发布文章百度seo关键词优化
  • 莱芜网站优化方案网络营销试卷
  • 企业网站建设 广州广告精准推广平台
  • 网站外链应该怎么做网站流量查询
  • 四川省建设工程信息网站真正永久免费网站建设
  • 合肥商业网站建设费用搜索引擎优化的核心本质
  • 什么操作系统做网站搜索引擎google
  • wordpress admin headseo优化的常用手法
  • 官方网站面膜做微商软文推广案例大全
  • 网站建设教程自学网个人怎么创建网站
  • 3 如何进行网站优化设计汕头seo全网营销
  • 成都在哪建设网站关键词优化的价格查询
  • 扬州公司做网站公司哪家好好项目推荐平台
  • 免费追剧网站百度广告价格