自定义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
58 0
|
17天前
|
前端开发
自定义 Hook 编写指南
【10月更文挑战第15天】本文介绍了 React 中的 Hooks 和自定义 Hook 的基本概念、编写方法及常见问题。通过具体代码示例,详细讲解了如何在函数组件中使用状态和其他 React 特性,并分享了避免常见错误的技巧。自定义 Hook 可以帮助你将组件中的逻辑提取出来,使其更加可重用和可维护。
128 68
|
测试技术 API Windows
使用钩子(Hook)实现Revit API中 PickObjects 完成按钮的触发
使用钩子(Hook)实现Revit API中 PickObjects 完成按钮的触发
使用钩子(Hook)实现Revit API中 PickObjects 完成按钮的触发
|
6月前
|
关系型数据库 MySQL API
如何使用hook?
如何使用hook?
43 0
|
6月前
|
前端开发 API 数据处理
useEffect 实践案例(2):自定义 hook
useEffect 实践案例(2):自定义 hook
antd组件库封装31-自定义hook2
antd组件库封装31-自定义hook2
68 0
antd组件库封装31-自定义hook2
antd组件库封装32-自定义hook3
antd组件库封装32-自定义hook3
68 0
antd组件库封装32-自定义hook3
antd组件库封装30-自定义hook1
antd组件库封装30-自定义hook1
90 0
antd组件库封装30-自定义hook1
|
存储 JavaScript
tp5源码解析--hook(钩子函数)类详解
tp5源码解析--hook(钩子函数)类详解
282 0
tp5源码解析--hook(钩子函数)类详解
|
前端开发
前端hook项目pc总结笔记-hook项目文件自定义扎号onchange事件
前端hook项目pc总结笔记-hook项目文件自定义扎号onchange事件
85 0