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

news/2024/10/22 12:38:09/

简介

    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.ppmy.cn/news/1532732.html

相关文章

大模型增量训练--基于transformer制作一个大模型聊天机器人

针对夸夸闲聊数据集&#xff0c;利用UniLM模型进行模型训练及测试&#xff0c;更深入地了解预训练语言模型的使用方法&#xff0c;完成一个生成式闲聊机器人任务。 项目主要结构如下&#xff1a; data 存放数据的文件夹 dirty_word.txt 敏感词数据douban_kuakua_qa.txt 原始语…

Swagger 教程(笔记) Knife4j

假设获取到了整个项目&#xff0c;创建项目相应的结构 MySQL user 表 DROP DATABASE if EXISTS study; CREATE DATABASE study; USE study; CREATE TABLE users (id INT(10) NOT NULL AUTO_INCREMENT,username VARCHAR(255) NOT NULL COLLATE utf8_general_ci,password VARCHA…

manim中实现文字换行和设置字体格式

实现换行 from manim import * class Textline(Scene): def construct(self): self.camera.background_color "#2F4F14" # 创建中心文本 horizontal_line Line(startLEFT * 8, endRIGHT * 8, colorWHITE).shift(3 * UP) stext Text("线性代数", …

【C++打怪之路Lv4】-- 类和对象(中)

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;C打怪之路&#xff0c;python从入门到精通&#xff0c;数据结构&#xff0c;C语言&#xff0c;C语言题集&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文(平均质量分82)&#…

X-Spreadsheet:Web端Excel电子表格工具库

在数字化时代&#xff0c;数据管理与分析的重要性日益凸显。传统的电子表格软件如Microsoft Excel和Google Sheets在数据处理方面发挥着重要作用&#xff0c;但在Web端&#xff0c;一款名为X-Spreadsheet的工具库正以其独特的优势逐渐崭露头角。本文将详细介绍X-Spreadsheet&am…

C++的6种构造函数

在 C 中&#xff0c;构造函数是一种特殊的成员函数&#xff0c;用于初始化类对象。在对象创建时自动调用&#xff0c;构造函数的主要作用是分配资源、初始化数据成员等。根据不同的功能和使用场景&#xff0c;C 提供了多种类型的构造函数&#xff1a; 1. 默认构造函数 (Defaul…

【C语言】字符和字符串函数(2)

文章目录 一、strncpy函数的使用二、strncat函数的使用三、strncmp函数的使用四、strstr的使用和模拟实现五、strtok函数的使用六、strerr函数的使用 一、strncpy函数的使用 我们之前学习的strcpy的作用是把源字符串拷贝到目标空间内&#xff0c;而且经过我们的模拟实现&#x…

大厂面试真题- RPC通讯协议如何保证数据完整性

RPC&#xff08;远程过程调用&#xff09;通讯协议保证数据完整性的方法主要依赖于多种技术手段和协议特性。以下是一些关键措施&#xff1a; 1. 加密技术 详细解释&#xff1a; 加密算法&#xff1a;加密算法如AES和RSA等&#xff0c;用于对RPC请求和响应数据进行加密。这些…