高防服务器

Vue中callHook钩子函数有什么用


Vue中callHook钩子函数有什么用

发布时间:2022-05-05 18:09:42 来源:高防服务器网 阅读:58 作者:iii 栏目:大数据

这篇文章主要介绍“Vue中callHook钩子函数有什么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue中callHook钩子函数有什么用”文章能帮助大家解决问题。

Vue实例在不同的生命周期阶段,都调用了callHook方法。比如在实例初始化(_init)的时候调用callHook(vm, 'beforeCreate')和callHook(vm, 'created')。

这里的"beforeCreate","created"状态并非随意定义,而是来自于Vue内部的定义的生命周期钩子。

var LIFECYCLE_HOOKS = [   'beforeCreate',   'created',   'beforeMount',   'mounted',   'beforeUpdate',   'updated',   'beforeDestroy',   'destroyed',   'activated',   'deactivated',   'errorCaptured'  ];

接下来我们来看一下Vue中实现钩子函数的源码:

function callHook (vm, hook) {   // #7573 disable dep collection when invoking lifecycle hooks   pushTarget();   var handlers = vm.$options[hook];   if (handlers) {    for (var i = 0, j = handlers.length; i < j; i++) {     try {      handlers[i].call(vm);     } catch (e) {      handleError(e, vm, (hook + " hook"));     }    }   }   if (vm._hasHookEvent) {    vm.$emit('hook:' + hook);   }   popTarget();  }

举个例子说明:

 let test = new Vue({             data: {                a: 1             },             created: function () {              console.log("这里是Created");             }          });

实例化一个Vue组件test,给test定义了数据data,以及created方法。而在实例化组件的时候,Vue内部调用了callHook(vm,'created')(上文已说明)。执行callHook函数的时候,Vue在test组件的$options中查找created是否存在,如果存在的话就执行created相对应的方法。这里就会执行console.log("这里是Created")。

callHook的作用就是执行用户自定义的钩子函数,并将钩子中this指向指为当前组件实例。

关于“Vue中callHook钩子函数有什么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注高防服务器网行业资讯频道,小编每天都会为大家更新不同的知识点。

[微信提示:高防服务器能助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

[图文来源于网络,不代表本站立场,如有侵权,请联系高防服务器网删除]
[