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

VueUse-----基于 Vue 3 的实用工具库,常用功能介绍及使用案例

简介

    VueUse 是一个基于 Vue 3 的实用工具库,它提供了一系列的组合式 API(Composition API)函数,可以帮助你更方便地处理常见的任务VueUse 包含了大量的功能,如状态管理、浏览器 API 封装、响应式数据处理等。


安装 VueUse

可以通过 npm 或 yarn 来安装 VueUse

npm install @vueuse/core
# 或者
yarn add @vueuse/core


常用功能示例

以下是一些 VueUse 中常用的功能示例:

1. 使用 useFetch 进行 HTTP 请求

useFetch 可以简化 HTTP 请求的处理,并且可以与 Composition API 很好地集成。

<script setup lang="ts">
import { ref } from 'vue';
import { useFetch } from '@vueuse/core';

const { data, error, isFetching } = useFetch('https://api.example.com/data');

const fetchData = async () => {
    if (isFetching.value) return;
    await data.value; // 等待数据加载完成
    console.log(data.value);
};

if (error.value) {
    console.error('Fetch Error:', error.value);
}
</script>

<template>
  <div>
    <button @click="fetchData" :disabled="isFetching">获取数据</button>
    <p v-if="data">数据: {{ data }}</p>
    <p v-else-if="isFetching">正在加载...</p>
    <p v-else-if="error">加载失败: {{ error.message }}</p>
  </div>
</template>
2. 使用 useStorage 进行本地存储

useStorage 可以帮助你轻松地在浏览器的 localStoragesessionStorage 中存储和读取数据。

<script setup lang="ts">
import { useStorage } from '@vueuse/core';

const name = useStorage('user-name', '');
</script>

<template>
  <div>
    <input v-model="name" placeholder="输入你的名字" />
    <p>你好, {{ name }}!</p>
  </div>
</template>
3. 使用 useMouse 获取鼠标位置

useMouse 可以帮助你获取当前鼠标的位置。

<script setup lang="ts">
import { useMouse } from '@vueuse/core';

const { x, y } = useMouse();
</script>

<template>
  <div>
    <p>鼠标位置: X: {{ x }}, Y: {{ y }}</p>
  </div>
</template>
4. 使用 useWindowSize 获取窗口大小

useWindowSize 可以帮助你获取当前窗口的大小,并且是响应式的。

<script setup lang="ts">
import { useWindowSize } from '@vueuse/core';

const { width, height } = useWindowSize();
</script>

<template>
  <div>
    <p>窗口大小: 宽度: {{ width }}, 高度: {{ height }}</p>
  </div>
</template>
5. 使用 useDark 切换暗黑模式

useDark 可以帮助你切换页面的暗黑模式。

<script setup lang="ts">
import { useDark, useToggle } from '@vueuse/core';

const isDark = useDark();
const toggleDark = useToggle(isDark);
</script>

<template>
  <div>
    <button @click="toggleDark">切换暗黑模式</button>
    <p v-if="isDark">当前是暗黑模式</p>
    <p v-else>当前是亮色模式</p>
  </div>
</template>


更多功能

VueUse 提供了非常多的功能,包括但不限于:

  • 状态管理useStateuseAsyncState
  • DOM 操作useElementSizeuseElementVisibility
  • 事件处理useEventListeneruseIntervalFn
  • 设备信息useDeviceMotionuseDeviceOrientation
  • 动画useTransitionuseSpring
  • 网络状态useOnline
  • 剪贴板操作useClipboard


官方文档地址

你可以访问 VueUse 官方文档 获取更多详细信息和示例。


http://www.kler.cn/a/323680.html

相关文章:

  • 大数据新视界 -- 大数据大厂之 Impala 性能优化:基于数据特征的存储格式选择(上)(19/30)
  • 坚果云·无法连接服务器(无法同步)
  • Day 65 || SPFA、判断负权回路、bellman_ford之单源有限最短路
  • 探索IDE的无限可能:使用技巧与插件推荐
  • 卡尔曼滤波:从理论到应用的简介
  • DNS批量解析管理软件有什么用
  • 代码随想录第二十天:动态规划、斐波那契数列、爬楼梯、最小体力爬楼梯
  • Java网络编程、正则表达式、单例设计模式与Lombok
  • 南平自闭症寄宿制学校:让孩子自信绽放
  • 什么是后端开发 ?
  • 安装 Nacos 启动报错 java.lang.IllegalArgumentException: db.num is null
  • JavaWeb图书借阅系统
  • 【3D分割】Segment Anything in 3D with Radiance Fields
  • 【MySQL】数据库基础认识
  • GIS--为研究区准备数据
  • 基于STM32的远程工业控制系统架构设计:MQTT通信、React界面与FreeRTOS优化的综合应用
  • 【React】原理
  • 微信小程序开发第八课
  • 16.第二阶段x86游戏实战2-发包函数和怎么去找改写过的发包函数
  • 进程与线程之间的关系与区别
  • C++20中头文件compare的使用
  • 数据仓库简介(一)
  • 鸿蒙OS开发之动画相关示例分享, 关于弹出倒计时动画的实战案例源码分享
  • netty之Future和Promise
  • leetcode946. 验证栈序列
  • ARM GNU工具链