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

vueuse的常用方法记录

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

onClickOutside(target, event => console.log(event))
  1. 监听键盘
onKeyStroke('ArrowDown', (e) => {
  e.preventDefault()
})
  1. 监听长按事件:onLongPress

http://www.kler.cn/news/357057.html

相关文章:

  • AI 视频工具合集
  • Python无监督学习中的聚类:K均值与层次聚类实现详解
  • 1.Node.js环境搭建(windows)
  • Python基础:20、Python基础综合案例
  • 如何使用python网络爬虫批量获取公共资源数据?
  • 六、存储过程和触发器及视图和临时表
  • 低代码模式即将下线;工作流上线消息节点、支持配置卡片样式
  • 计算机组成原理之磁盘存储器
  • 【分布式微服务云原生】《Redis 的高效之道:线程模型、IO 模型与 Reactor 模型全解析》
  • VB.NET 让窗体绘图持久化,类似VB6 ME.AutoRedraw=True
  • 2.5 windows xp,ReactOS系统快速系统调用的实现
  • 【Linux】冯诺依曼体系结构 OS的概念
  • 图论|图的构造、图的遍历方式、DFS98. 所有可达路径;海岛数量 岛屿最大面积 101. 孤岛的总面积
  • 引进Menu菜单与新增验证上传图片功能--系统篇
  • 编写一个通用的i2c控制器驱动框架
  • Xcode使用Instruments的dsym还原符号堆栈问题
  • 智慧农业案例 (三)- 蔬菜智能温室
  • 高级Sql 技巧
  • Qt优秀开源项目之二十四:EXCEL读写利器QXlsx
  • 电脑端百度网页两个好用的功能