首页 前端知识 vue3中使用vueuse(必看)

vue3中使用vueuse(必看)

2024-09-10 23:09:52 前端知识 前端哥 558 21 我要收藏

目录

vueuse能做什么?

一、如何使用

1、先安装

2、引入

二、常用方法 

 1、useRoute 和 useRouter

2、useClipboard 复制文本

3、useMouse 追踪鼠标坐标

4、useFullScreen 用于浏览器的全屏展示作用 

5、useStorage 用于数据存储

6、useDateFormat 格式化日期

7、useNow 跟踪当前的日期时间

8、useBase64 处理 base64 编码的数据


定义 

首先vueuse不是Vue.use,它是为Vue 2和3服务的一套Vue Composition API(组合式API)的常用工具集,是目前世界上Star最高的同类型库之一。它的初衷就是将一切原本并不支持响应式的JS API变得支持响应式,省去程序员自己写相关代码。

vueuse 是一个基于 Composition API 的实用函数集合。通俗的来说,这就是一个工具函数包支持了更好的逻辑分离,它可以帮助你快速实现一些常见的功能,免得你自己去写,解决重复的工作内容。

vueuse能做什么?

它可以为以下类别提供工具函数!

  • 动画
  • 浏览器
  • 组件
  • 格式化
  • 传感器
  • State(状态机)
  • 公共方法
  • 监听
  • 等等 

一、如何使用

1、先安装

npm install @vueuse/core
或 yarn add vueuse

2、引入

在你的 Vue 组件中引入并使用 VueUse 提供的函数或 hooks。‌

例如,‌如果你想使用 useLocalStorage 这个 hook,‌你可以这样:

import { useLocalStorage } from '@vueuse/core';
// 使用 useLocalStorage 钩子函数
const [state, setState] = useLocalStorage('myStorage', { name: 'lily', age: 11 });

二、常用方法 

 1、useRoute 和 useRouter

import { useRoute, useRouter } from 'vueuse'
 
const route = useRoute()
const router = useRouter()

//route.query 访问路由参数
//router.push() 操作路由 等

2、useClipboard 复制文本

useClipboard 用于实现复制文本到剪贴板的功能,很方便,不需要再额外安装插件

import { useClipboard } from 'vueuse'
 
const { copy, isCopy } = useClipboard()

// 复制函数
const getCopyContent = async (content: string) => {
   try {
      await copy(content);
      alert("复制成功");
    } catch (error) {
      alert("复制失败");
    }
};

//isCopy 作为一个响应式的属性,‌能够实时反映剪贴板中内容的状态,‌即内容是否被复制。‌

3、useMouse 追踪鼠标坐标

import { useMouse } from 'vueuse'
 
const { x, y} = useMouse()

console.log('x坐标为:',x.value)
console.log('y坐标为:',y.value)

4、useFullScreen 用于浏览器的全屏展示作用 

//isFullscreen 当前是否是全屏,true/false,可用于一些逻辑的判断
//toggle 是函数,直接调用
const { isFullscreen, toggle } = useFullscreen();

<button @click="toggle">点击切换</button>

5、useStorage 用于数据存储

useStorage默认存入localStorage,存入sessionstorage需要设定参数

import { useStorage} from '@vueuse/core';
// 存入值,默认localStorage
const state = useStorage("myStorage", {
  name: "lily",
  age: 11,
}); 
// 存入sessionStorage
const state = useStorage("myStorage", {
  name: "lily",
  age: 11,
}, sessionStorage); 
// 需要parse一下,因为返回的是序列化的数据
state = JSON.parse(state.value)
// 获取值
console.log(state)

6、useDateFormat 格式化日期

import { useDateFormat } from '@vueuse/core';
 
// 创建一个响应式的日期对象
const date = ref(new Date());
 
// 使用 useDateFormat 钩子函数格式化日期
const { formattedDate } = useDateFormat({
  date,
  format: 'yyyy-MM-dd HH:mm:ss', // 指定日期格式
});

<template>
  <div>
    <p>格式化日期: {{ formattedDate }}</p>
  </div>
</template>

7、useNow 跟踪当前的日期时间

这个函数返回一个响应式的 ref 对象,该对象会持续更新为当前的日期和时间。

<template>
  <div>
    <p>当前时间: {{ now }}</p>
  </div>
</template>
 
<script setup>
import { useNow } from '@vueuse/core';
 
const now = useNow();
</script>

8、useBase64 处理 base64 编码的数据

它的功能是将输入的文件转换为 base64 编码,并允许你监听文件的变化。

<template>
  <input type="file" @change="handleFileChange">
  <div>Base64: {{ base64 }}</div>
</template>
 
<script setup lang="ts">
import { ref } from 'vue';
import { useBase64 } from '@vueuse/core';
 
const file = ref<File>();
const base64 = ref('');
 
const handleFileChange = (event: Event) => {
  const input = event.target as HTMLInputElement;
  if (input.files && input.files.length > 0) {
    file.value = input.files[0];
  }
};
 
base64.value = useBase64(file).value;
</script>

 剩余方法自行开发理解哈~

转载请注明出处或者链接地址:https://www.qianduange.cn//article/18074.html
评论
发布的文章

关于HTML的知识

2024-09-18 23:09:36

js简单实现轮播图效果

2024-09-18 23:09:36

CSS3美化网页元素

2024-09-18 23:09:27

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!