useClickOutside()函数的参数为什么不传一个dom节点?

来源:4-11 useClickOutside 第一个自定义函数

12990240jin

2025-11-12

useClickOutside()函数的参数为什么不传一个dom节点,而是传响应式对象,Dropdown组件的节点本来就不变呀?

写回答

1回答

张轩

2025-11-13

同学你好

这些考量:

初次为 null挂载前 ref.value 是 null,直接传会监听无效元素支持动态切换

虽然你说“节点不变”,但在 v-if、teleport、条件渲染等场景下,DOM 可能被销毁重建

响应式安全传 ref 让 hook 能自动处理挂载/卸载时机

组合函数设计惯例Vue 组合函数通常接收 Ref 而不是裸值,便于内部 watch


0
0

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3209 学习 · 2364 问题

查看课程