首页 > 其他分享 >VueUse-----基于 Vue 3 的实用工具库,常用功能介绍及使用案例

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

时间:2024-09-27 13:50:30浏览次数:7  
标签:core Vue const vueuse 实用工具 VueUse value import

简介

    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 官方文档 获取更多详细信息和示例。

标签:core,Vue,const,vueuse,实用工具,VueUse,value,import
From: https://blog.csdn.net/Yluciud/article/details/142591785

相关文章

  • vue3+ts+axios封装
    需要安装axios,qsyarnaddaxiosnpmiaxioscnpmiaxiosyarnaddqsnpmiqscnpmiqs在src/API/axios.tsimportaxiosfrom'axios';importqsfrom"qs";axios.defaults.baseURL="/api";//请求地址统一配置到vite.config.ts中代理......
  • python+vue中小学班级课外活动管理系统pycharm毕业设计项目_0390d
    目录解决的思路技术栈和环境说明python语言操作可行性性能/安全/负载方面具体实现截图框架介绍技术路线python-flask核心代码部分展示python-django核心代码部分展示详细视频演示源码获取解决的思路前端的数据收集及可视化研究,熟悉Django框架,python编程设计语法。......
  • springboot+vue社区医疗诊所信息系统的设计与实现 8283b
    目录功能和技术介绍系统实现截图开发核心技术介绍:使用说明开发步骤编译运行代码执行流程核心代码部分展示可行性分析软件测试详细视频演示源码获取功能和技术介绍jdk版本:jdk1.8+编程语言:java框架支持:springboot/ssm/springcloud分布式微服务数据库:mysql版......
  • 实战笔记:Vue2项目Webpack 3升级到Webpack 4的实操指南
    在Web开发领域,保持技术的更新是非常重要的。随着前端构建工具的快速发展,Webpack已经更新到5.x版本,如果你正在使用Vue2项目,并且还在使用Webpack3,那么是时候考虑升级一下Webpack了。我最近将我的Vue2项目从Webpack3升级到了Webpack4。以下是我升级过程中积累的经验和步骤,希望......
  • 【开题报告+文档+源码】基于vue框架的东升餐饮点餐管理平台的设计与实现
    项目背景与意义在当前信息化社会背景下,餐饮行业正经历着由传统线下服务模式向线上线下深度融合的转变。随着移动互联网技术及大数据应用的飞速发展,用户对于餐饮服务平台的需求也日益多元化和个性化。他们期望能在一个集便捷、高效、个性化于一体的平台上完成从菜品搜索、下单......
  • Vue中使用xlsx库解析Excel
    <template><div><el-uploadref="upload"class="upload-demo"action="#"accept="xlsx,xls"multiple:limit="1":auto-upload="false":withCredentials="......
  • vue父子组件的生命周期加载顺序
    vue父子组件的生命周期加载顺序官网里vue组件的生命周期钩子汇总列举如下:生命周期单个vue组件的生命周期执行顺序已经非常熟悉了。但是,如果有嵌套组件,父子组件的生命周期的执行顺序是什么呢?嵌套组件又分为2种情况:一种是在template直接引入(大部分场景),另一种是element......
  • [附源码]在线音乐系统+SpringBoot+Vue前后端分离
    今天带来一款优秀的项目:在线音乐系统源码 。系统采用的流行的前后端分离结构,内含功能包括"管理后台",“用户端”,“评论系统”,“歌手,歌曲管理”,“用户系统”,"统计"等功能。如果您有任何问题,也请联系小编,小编是经验丰富的程序员!一.系统演示视频 https://githubs.xy......
  • springboot+vue青年大学习数据分析系统的设计与实现5ek29
    目录功能和技术介绍系统实现截图开发核心技术介绍:使用说明开发步骤编译运行需求分析系统设计软件测试核心代码部分展示详细视频演示源码获取功能和技术介绍本项目包含程序源码和MySql脚本和文档,idea开发,支持Eclipse。对项目进行分阶段,分模块的开发,对项目进行黑盒......
  • 基于Node.js+vue基于java的校园疫情管理系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景近年来,全球范围内频繁爆发的疫情事件对教育领域产生了深远影响,特别是在校园环境中,如何有效防控疫情、保障师生健康安全成为了亟待解决的问题。传统的校园管......