为什么使用hooks,什么情况下使用hooks

背景

在react,vue3 这种主流前端框架中都会去使用hook来抽离公共逻辑代码,那么为什么要使用hooks来封装呢,使用普通函数不也一样可以实现逻辑抽离吗?

hook是什么

钩子编程(hooking) 是计算机程序设计术语, 通过拦截软件模块间的函数调用、消息传递、事件传递来修改或扩展操作系统、应用程序或其他软件组件的行为的各种技术。处理被拦截的函数调用、事件、消息的代码,被称为钩子(hook)。

我的理解:hook就是一个函数,它用了react或者是vue中的勾子函数后就成了hook函数,就像vue2中mixin一样,使用vue的生命周期勾子函数;其实hook就是mixin的一个替代

为什么要替代mixin?

mixin 的缺点:一个组件中混入多个mixin,然后其中几个mixin有相同的方法和名称,这个时候就会发生混乱,也不知道用的是哪个mixin里面的方法了,查找也麻烦

hook的优势

hook使用可以非常方便得知道是哪个hook引入得方法,维护很方便
比如这样引入一个hook

<script setup>
import { useMousePosition } from '@/hooks/test'
const { x, y } = useMousePosition()
</script>

我们能知道这是hooks文件夹下的test文件引入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值