用途:@vueuse/components 15.0.0 把 @vueuse/core 的组合式函数封装成无渲染组件和指令,方便在 Vue 3 模板中直接使用。依赖 @vueuse/core 与 @vueuse/shared 15.0.0,peer 依赖 vue ^3.5.0,要求 Node.js >=22,仅 ESM,无 CJS 构建,可 tree-shake,并提供 CDN 用 IIFE 包。安装:npm i @vueuse/components @vueuse/core。
主要能力:组件分两类。纯无渲染组件不渲染自身 DOM,只渲染默认插槽,作用域插槽接收响应式返回值,如 UseMouse。元素包装组件渲染一个元素(props.as || "div"),其 ref 作为组合式函数目标,插槽内容成为子节点,如 UseElementBounding。元素包装组件包括 OnClickOutside、OnLongPress、UseDraggable、UseElementBounding、UseElementOverflow、UseElementSize、UseElementVisibility、UseFullscreen、UseImage、UseMouseInElement、UseMousePressed、UsePointerLock、UseScreenSafeArea、UseVirtualList;其余为纯无渲染。
使用方式:从 @vueuse/components 具名导入组件和指令,无 app.use() 插件,需要时自行全局注册。On* 组件通过 options prop 传配置,通过 @trigger 事件响应,而非 handler prop。元素包装组件可用 as 改变渲染元素,但 UseScreenSafeArea 运行时始终渲染 div。UseIdle 必须传 timeout;UseVirtualList 必须传 list 和 options,height 默认 300px,并通过模板 ref 暴露 scrollTo(index)。指令绑定值可为处理函数或 [handler, options] 元组,vElementSize 接受 [handler, initialSize, options],vScrollLock 接受布尔值。不要使用已弃用的 VOnClickOutside 和 VOnLongPress。
限制:资料未提供收费、价格、平台支持范围及效果数据;具体 props、插槽数据、emits 与指令修饰符需查阅随包 references 文档或官方文档 https://vueuse.org/guide/components。