Vue3中Hook函数,解锁新技能!

日期:2024-07-09  作者:小天  来源:www.txunda.com  人气:503

什么是Hook函数
        Hook的意思是钩子,它实际上是一个可重用的功能集合。 简单地说,就是将代码的逻辑统一起来,从而实现代码的复用和可维护性。 那么,它为什么被称为钩子呢?它可以把一个逻辑"钩入"到一个程序集上,使开发人员在建立和管理这些程序的能力方面更加灵活,这样就增加了代码的易读性和可维护性,等等。
细则:
        看到这些概念,他们可能会一头雾水,这不就是把一个简单的函数封装起来,让我们使用吗? 对,这也是我在研究进程中非常困惑的地方,请看以下说明!在开发时,我们通常会找到一些可以重新使用的代码,然后把它们封装为可以调用的函数。 这样的功能包含了工具功能,但是不仅仅是工具功能,我们还可以封装某些重复的商业逻辑。 但是,在过去,我们在前端开发时,对大部分功能进行了封装,这些功能都是"无状态"的,无法将数据和视图连接起来。
        那么,"有状态"功能是什么? "有状态"这个词在此真正意味着包含了应答变量。 在 MVC体系结构基础上,以及在 MVVM基础上的 Vue框架中,我们都到"状态"这个概念。 状态是可以导致视图更改的特定 JavaScript变量。 在这种框架下,当某个变量的改变没有导致视图发生改变时,它是一个正常的变量,而当一个变量被该框架登记为一个状态时,它的改变将导致视图的改变,我们称为响应性变量。概括来说,就是:如果一个函数中含有响应性变量,则这个函数是挂起的。
天津天迅达科技有限公司
如果您需要相关服务,可以找天津天迅达科技有限公司,我们的业务有Web开发、iOS APPAndroid APP、微信开发、HTML5开发等,天迅达——您身边的App个性化定制专家!
Hook实现原理
        看了以上的说明,相信你也能理解了,上面说过, Hook函数就是一个含有响应性变量的函数,它可以让一个组件重复使用代码。那么,在Vue3中, Hooks是建立在 Composition API上的,这就很好理解了,毕竟它是建立在响应型变量上的!Hooks是Vue3中的 setup函数,这个函数是Vue3中的一个新的生存期功能,它会在建立构件实例前被调用,并接受 props和 context两个参数。 在 setup功能中,我们能够定义并返回那些响应数据,方法,计算属性等等,它们都是由 Hooks完成的。
        Hook简单实现你知道发生了什么? 那我们该如何利用它! 跟我来!由于这篇文章主要是为了帮助你理解挂钩函数,因此我们在此给出一个非常简单的示例!
        商业要求:跟踪鼠标的位置
        在一个漆黑的夜晚,卷生悠闲地品着咖啡,这时,后台的老弟发了条消息过来,“兄弟! 大事不妙! 老板的要求,又变了! 说要把使用者的鼠标实时显示出来,差不多每一页都要!你要加班了!”到了这个时候,普通的程序员或许会惊慌失措,但我们这些老油条,却是身经百战!卷圣心想:我就简单地写个hook函数去追踪鼠标位置,然后再到不同视图组件里面去调用,再渲染一下不就成了......,卷圣回复说好的,明白了。
        在这种情况下,如果有几个网页在同一时间被要求,那么你就得把这些代码拷贝一遍,还要注意,每一页中的 onMounted和 onUnmounted并不是空的,另外,在变量的名字上,也存在着重复的可能。这会给以后的维修带来很大的不便!接下来,让我们来看一看帅气的挂钩方式!在此,我们包装了一个用于鼠标跟踪的 hook库,当有其它的元件要用的时候,我们直接导入它,然后加上一个变量就可以了,而不用担心太多的重名和太多的生命周期挂钩!当然,这里面的道理更清楚,越是复杂的道理,越能让你感觉到它的威力!Vue3环境下最流行的第三方类库 VueUse,它包含了大量的 hook功能,也许你可以在里面发现或者学会一些更加复杂的 hook功能。
Hook的使用场景
        逻辑复用:如果有多个元件要共用同一逻辑,我们可以把它们包装为一本书,然后把它们输入到所需的元件中,并加以利用。这样既能防止复制,又能提高复用率。
        逻辑拆分:如果是比较复杂的元件,我们可以用 Hooks把元件的逻辑分解为几个单独的功能,每一个功能都只负责一个部分。这使得构件代码更清楚,更容易维护。
        副作用管理:Hooks中的函式可以存取元件的回应资料,也可以在元件生存期内执行负面动作(例如计时器、事件侦听等)。有了 Hooks,我们就能更好的处理这种负面影响,从而保证在卸载组件时,能够对其进行适当的清除。
Vue3中的Hook与Vue2中的mixn
        也许你们也感觉到了,这和我们之前在Vue2里学过的 mixn差不多!大家都知道,Vue3介绍了 Composition API,我们介绍了一个 hooks函数,和Vue2中的 mixin是一个类似的, hooks函数中的 ref, reactive,就是 mixin中的数据,并且 hooks也可以用来介绍生命周期函数, watch等都是这样。
以上所有设计图和部分文字均来自网络,如有侵权,请call我删除,感谢~
天津天迅达科技有限公司经过多年来对APP小程序、以及网站建设的探索,已经帮助每一个客户快速开发出属于自己的APP小程序网站,是万千企业之选。
标签:天迅达科技 天津APP开发 天津网站建设 网站建设