描述一下钩子

描述一下钩子

用自己的理解,找了好多,但感觉都说的比较模糊,用简介的语言描述和举例!!

阅读 5.3k
9 个回答

你可以简单的理解成一种回调函数就好了,比如各种MVVM框架的声明周期回调(钩子)。

在JavaScript中一般不用钩子这种称呼吧?题主是在哪里看到的?

所为钩子,个人理解,就是在出发某个事件之前或者之后,或者之中。。要发生的事件,
比如切换路由之前(可以做一些验证), beforeRouteChange...
http请求之前; beforeHttpRequest(可以验证用户是否有权限)
组件渲染之前,beforeComponentRender,
组件渲染之后,afterComponentRender,
组件销毁之前(从dom移除)beforeComponentDestroy,
类(构造函数)创建初始化 : constructor
类销毁: destroy...
。。。。

什么钩子,就是回调,或者理解成监听器也行.

百度搜一下“Hook”, 应该来源于 WindowsAPI

领导让我写个简单的轮播图
我写了
快写完的时候,领导让我加了个显示总张数和当前张数的功能
我又倒回去改改改
改的时候,我猜领导可能会让我加个左右按钮来控制轮播
于是我就写了左右按钮的方法,只要传入设当参数就行了
于是我就给领导交差了
然后果不其然领导要求加这个功能
于是我愉快的申请了一天的时间,上午把dom和控制参数一传入就搞定了,下午和前台小姑娘撩了一下午...
下班交差并受到领导表扬.....
当然以上都是我编的

我猜我猜的时候就是预留了个钩子吧...

还有,设计模式里面的观察者模式可能会对你的问题有所回答吧

钩子,就好比龟波气功,你聚集着能量到某个点时将其轰出。

  1. 聚集气功这个过程是触发钩子前的准备

  2. 某个点指的就是钩子触发的时刻

  3. 轰出指的就是执行这个钩子

比如,加载一张图片
var img = new Image()
img.src = '...'
img.onload = function(e) { }
浏览器加载这个图片需要时间,加载完那一刻,就触发了钩子,在这里就是img.onload绑定的事件,告诉你图片加载完了

举个例子:
用户注册;

用户注册成功,这其实就一个信号;这个信号可以通知其他东西去操作一些事情。比如发送短信、邮件等;一般这个信号会做成一个钩子。当信号触发后,会主动操作对应的一些操作!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题