自定义hook是什么

简介: 自定义hook是什么

使用Vue3的组合API封装的可复用的功能函数

自定义hook的作用类似于vue2中的mixin技术

自定义Hook的优势: 很清楚复用功能代码的来源, 更清楚易懂7

首先在src文件夹下定义一个hooks文件夹,在文件夹下创建一个index.js文件,然后在文件中写下以下代码

import { ref, onMounted, onUnmounted } from 'vue'
/*
收集用户鼠标点击的页面坐标
*/
export default function useMousePosition () {
// 初始化坐标数据
const x = ref(-1)
const y = ref(-1)
// 用于收集点击事件坐标的函数
const updatePosition = (e: MouseEvent) => {
x.value = e.pageX
y.value = e.pageY
}
// 挂载后绑定点击监听
onMounted(() => {
document.addEventListener('click', updatePosition)
})
// 卸载前解绑点击监听
onUnmounted(() => {
document.removeEventListener('click', updatePosition)
})
return {x, y}
}

然后再在某个使用到index.js功能的组件引入js文件,例如:

<template>
    <div>
        <h2>x: {{x}}, y: {{y}}</h2>
    </div>
</template>
<script>
import { ref } from "vue"
/*
在组件中引入并使用自定义hook
自定义hook的作用类似于vue2中的mixin技术
自定义Hook的优势: 很清楚复用功能代码的来源, 更清楚易懂
*/
import useMousePosition from './hooks/useMousePosition'
    export default {
        setup() {
        const {x, y} = useMousePosition()
            return {
                x,
                y
            }
        }
    }
</script>
相关文章
|
前端开发 JavaScript
自定义hooks之useLastState、useSafeState
自定义hooks之useLastState、useSafeState
65 0
|
2月前
|
前端开发
自定义 Hook 编写指南
【10月更文挑战第15天】本文介绍了 React 中的 Hooks 和自定义 Hook 的基本概念、编写方法及常见问题。通过具体代码示例,详细讲解了如何在函数组件中使用状态和其他 React 特性,并分享了避免常见错误的技巧。自定义 Hook 可以帮助你将组件中的逻辑提取出来,使其更加可重用和可维护。
208 68
|
7月前
|
数据格式
【vue2事件传参1】自定义参数:在elementui的change事件中,自定义参数的传递方法
【vue2事件传参1】自定义参数:在elementui的change事件中,自定义参数的传递方法
675 1
【vue2事件传参1】自定义参数:在elementui的change事件中,自定义参数的传递方法
|
7月前
|
JavaScript API
Vue自定义hook函数
Vue自定义hook函数
|
7月前
|
关系型数据库 MySQL API
如何使用hook?
如何使用hook?
51 0
|
7月前
|
前端开发 API 数据处理
useEffect 实践案例(2):自定义 hook
useEffect 实践案例(2):自定义 hook
antd组件库封装39-hook规则
antd组件库封装39-hook规则
67 0
antd组件库封装39-hook规则
|
存储 JavaScript
tp5源码解析--hook(钩子函数)类详解
tp5源码解析--hook(钩子函数)类详解
290 0
tp5源码解析--hook(钩子函数)类详解
|
前端开发
react 进阶hook 之自定义Hook
hooks是一个函数,并且是在react 函数组件中使用的,不同的hook的作用也是不一样的,例如,state hook是用来定义函数组件的状态, 而effect hook 是用来定义组件的副作用,那么自定义hook是用来干啥的呢?,自定来定义一个hook 函数,里面可以包含 多个hooks。简单点的说是,把相同逻辑的hooks封装在同一个函数里。
react 进阶hook 之自定义Hook
|
前端开发
前端hook项目pc总结笔记-hook项目文件自定义扎号onchange事件
前端hook项目pc总结笔记-hook项目文件自定义扎号onchange事件
90 0