vueuse的常用方法记录

devtools/2024/10/17 14:27:20/
  1. useStorage(key, value): 响应式的LocalStorage
    javascript">// 初始化 useLocalStorage,传入 key 和默认值
    const storedValue = useStorage('my-key', 'default-value');// 监听存储值的变化
    watch(storedValue, (newValue, oldValue) => {console.log('存储值从', oldValue, '变更为', newValue);
    });
    
  2. 获取当前聚焦的元素
    javascript">const activeElement = useActiveElement()watch(activeElement, (el) => {console.log('当前活动元素是', el)
    })
    
  3. 记录Ref的变化,并且可以撤销和重做
    javascript">const counter = ref(0)
    const { history, undo, redo } = useRefHistory(counter)
    
  4. 监听页面显示隐藏
    javascript">const visibility = useDocumentVisibility()
    watch(visibility, (newValue, oldValue) => {console.log('文档可见性从', oldValue, '变更为', newValue)
    })
    
  5. 监听具体元素的拖动
    javascript">const el = ref<HTMLElement | null>(null)// `style` 将作为 `left: ?px; top: ?px;` 的辅助计算属性
    const { x, y, style } = useDraggable(el, {initialValue: { x: 40, y: 40 },
    })
    
  6. 检测目标元素的可见性。
    javascript">const target = ref(null)const { stop } = useIntersectionObserver(target,([{ isIntersecting }], observerElement) => {if (isIntersecting ) {// 可见} else {// 不可见}},
    )
    
  7. 监听鼠标事件
    javascript">const target = ref(null)const { x, y, isOutside } = useMouseInElement(target)
    
  8. 获取当前的响应式窗口大小
    javascript">const { width, height } = useWindowSize()
    
  9. 获取蓝牙API
    javascript">const {isSupported,isConnected,device,requestDevice,server,
    } = useBluetooth({acceptAllDevices: true,
    })
    
  10. 剪贴板:useClipboard
  11. 打开取色器:
    javascript">const { isSupported, open, sRGBHex } = useEyeDropper()
    
  12. 插入div和样式
    javascript">const {id,css,load,unload,isLoaded,
    } = useStyleTag('.foo { margin-top: 32px; }')
    
  13. 根据内容自动更新 textarea 的高度。
    javascript"><script setup lang="ts">
    const { textarea, input } = useTextareaAutosize()
    </script><template><textarearef="textarea"v-model="input"class="resize-none"placeholder="想说点什么?"/>
    </template>
    
  14. 设备震动
    javascript">// 这会让设备振动 300 毫秒
    // 然后在振动设备另外 300 毫秒之前暂停 100 毫秒:
    const { vibrate, stop, isSupported } = useVibrate({ pattern: [300, 100, 300] })// 开始振动,当模式完成时,它将自动停止:
    vibrate()// 但是如果你想停止它,你可以:
    stop()
    
  15. 监听点击事件
javascript">const target = ref(null)onClickOutside(target, event => console.log(event))
  1. 监听键盘
javascript">onKeyStroke('ArrowDown', (e) => {e.preventDefault()
})
  1. 监听长按事件:onLongPress

http://www.ppmy.cn/devtools/126482.html

相关文章

GC1272替代APX9172/茂达中可应用于电脑散热风扇应用分析

在电脑散热风扇应用中&#xff0c;选择合适的驱动器件对于风扇的性能和效率至关重要。以下是对GC1272替代APX9172/茂达在此类应用中的分析&#xff1a; 1. 功能比较 GC1272&#xff1a; 主要用于驱动直流风扇&#xff0c;具有高效的电流控制和调速功能。支持PWM调速&#xff0…

LeetCode两数相加

给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数都不会以 0 …

大模型~合集9

我自己的原文哦~ https://blog.51cto.com/whaosoft/12275703 # 大模型参数高效微调综述 近期&#xff0c;大语言模型、文生图模型等大规模 AI 模型迅猛发展。在这种形势下&#xff0c;如何适应瞬息万变的需求&#xff0c;快速适配大模型至各类下游任务&#xff0c;成为了一个…

正则化L1和L2的区别

L1正则化和L2正则化是机器学习领域中常用的两种正则化技术&#xff0c;它们的主要区别在于对模型参数的惩罚方式和产生的效果不同。 一、定义与公式 L1正则化&#xff08;Lasso正则化&#xff09; L1正则化通过在损失函数中添加模型参数绝对值之和的正则项来限制模型的复杂度。…

Codeforces Round 770 (Div. 2)

比赛链接&#xff1a;Dashboard - Codeforces Round 770 (Div. 2) - Codeforces A. Reverse and Concatenate 题意&#xff1a; 思路&#xff1a; 假设 s "abba" 经过1次操作后 -> "abbaabba" s "abcd" 经过一次操作后 -> "abcd…

2024前端面试题大全

2024前端面试题大全涵盖了多个方面&#xff0c;包括HTML、CSS、JavaScript、Vue、React等前端技术。‌ HTML和CSS面试题 ‌HTML5新特性‌&#xff1a;包括绘画canvas、媒体回放元素video和audio、本地离线存储localStorage和sessionStorage、语义化更好的内容元素如article、…

自动驾驶系统研发系列—智能驾驶新技能:MEB低速紧急制动系统带来更多驾驶安全保障

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中一起航行,共同成长,探索技术的无限可能。 🚀 探索专栏:学…

闹钟、绘制与TCP

闹钟 pro文件&#xff1a; 头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTimer> #include<QTime> #include<QDebug> #include<QTimerEvent> #include<QDateTime> #include<QTextToSpeech> #i…