vue3中hooks的概述及用法小结

 更新时间:2023年03月07日 14:26:06   作者:一只爱吃糖的小羊  
这篇文章是介绍一下vue3中的hooks以及它的用法,主要围绕两点来介绍,一个是hooks基本概念,另一个是vue3中hooks的使用方法,本文结合实例代码给大家讲解的非常详细,需要的朋友参考下吧

大家好,今天这篇文章是介绍一下vue3中的hooks以及它的用法。本文内容主要有以下两点:

  • 什么是hooks
  • vue3中hooks的使用方法

一、 什么是hooks

hook是钩子的意思,看到“钩子”是不是就想到了钩子函数?事实上,hooks 还真是函数的一种写法。

vue3 借鉴 react hooks 开发出了 Composition API ,所以也就意味着 Composition API 也能进行自定义封装 hooks

vue3 中的 hooks 就是函数的一种写法,就是将文件的一些单独功能的js代码进行抽离出来,放到单独的js文件中,或者说是一些可以复用的公共方法/功能。其实 hooksvue2 中的 mixin 有点类似,但是相对 mixins 而言, hooks 更清楚复用功能代码的来源, 更清晰易懂。

二、hooks的用法

1.在src中创建一个hooks文件夹,用来存放hook文件

2.根据需要写hook文件,比如要实现一个功能就是在 点击页面时,记录鼠标当前的位置,可以在hooks文件夹中新建一个文件useMousePosition.ts

// src/hooks/useMousePosition.ts
import { ref, onMounted, onUnmounted, Ref } from 'vue'

interface MousePosition {
  x: Ref<number>,
  y: Ref<number>
}
function useMousePosition(): MousePosition {
  const x = ref(0)
  const y = ref(0)

  const updateMouse = (e: MouseEvent) => {
    x.value = e.pageX
    y.value = e.pageY
  }

  onMounted(() => {
    document.addEventListener('click', updateMouse)
  })

  onUnmounted(() => {
    document.removeEventListener('click', updateMouse)
  })

  return { x, y }
}

export default useMousePosition

3.hook文件的使用:在需要用到该hook功能的组件中的使用,比如在 test.vue文件中:

// src/views/test.vue
<template>
  <div>
    <p>X: {{ x }}</p>
    <p>Y: {{ y }}</p>
  </div>
</template>

<script lang="ts">
import { defineComponent} from 'vue'
// 引入hooks
import useMousePosition from '../../hooks/useMousePosition'
export default defineComponent({
  setup () {
    // 使用hooks功能
    const { x, y } = useMousePosition()

    return {
      x,
      y
    }
  }
})
</script>

以上就是vue3中hooks的使用,是不是觉得特别的简单清晰。

到此这篇关于vue3中hooks的介绍及用法的文章就介绍到这了,更多相关vue3中hooks用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue表单快速上手

    Vue表单快速上手

    工作中vue表单使用的最多的莫过于input、textarea、select等,原生js的基础上vue通过双向数据绑定等,实现了自己独有的一套指令,这是react中没有的部分,也算是vue的一大特色
    2022-09-09
  • element多级菜单动态显示的实现

    element多级菜单动态显示的实现

    通常在后台管理系统中,需要根据每个用户不同的权限来动态展示菜单,本文主要介绍了element多级菜单动态显示的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • Vue实现点击导航栏当前标签后变色功能

    Vue实现点击导航栏当前标签后变色功能

    这篇文章主要为大家详细介绍了Vue实现点击导航栏当前标签后变色功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • vue设置页面超时15分钟自动退出登录的方法详解

    vue设置页面超时15分钟自动退出登录的方法详解

    当用户登录后,如果长时间未操作页面这个时候需要自动退出登录回到登录页面,本文将给大家介绍一下vue设置页面超时15分钟自动退出登录的方法,感兴趣的同学可以自己动手试一下
    2023-10-10
  • vue踩坑记之npm install报错问题解决总结

    vue踩坑记之npm install报错问题解决总结

    当你跑起一个项目的时候,第一步需要先安装依赖npm install,下面这篇文章主要给大家介绍了关于vue踩坑之npm install报错问题解决的相关资料,需要的朋友可以参考下
    2022-06-06
  • Vue父组件监听子组件生命周期

    Vue父组件监听子组件生命周期

    这篇文章主要介绍了Vue父组件监听子组件生命周期,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Vue学习之常用指令实例详解

    Vue学习之常用指令实例详解

    这篇文章主要介绍了Vue学习之常用指令,结合实例形式详细分析了vue.js创建实例、常用指令及相关操作技巧,需要的朋友可以参考下
    2020-01-01
  • Vue创建浅层响应式数据的实例详解

    Vue创建浅层响应式数据的实例详解

    这篇文章主要介绍了Vue创建浅层响应式数据的实例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-11-11
  • vue中Axios的封装与API接口的管理详解

    vue中Axios的封装与API接口的管理详解

    这篇文章主要给大家介绍了关于vue中Axios的封装与API接口的管理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • vue .sync修饰符的使用详解

    vue .sync修饰符的使用详解

    这篇文章主要介绍了vue .sync修饰符的使用,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06

最新评论