1. 概念
钩子函数: 一些预定义的函数, 由定义者调用, 使用者提供实现.
解释: 如Vue中定义了多个生命周期钩子, vue在内部定义并调用这些钩子函数(不管是否有具体实现), 开发者在template中给出各钩子函数的实现,也可以不实现
2. 实例
vue的生命周期钩子, vue生命周期钩子参考: https://cn.vuejs.org/v2/api/#%E9%80%89%E9%A1%B9-%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%E9%92%A9%E5%AD%90
vue源码:
var LIFECYCLE_HOOKS = [
'beforeCreate',
'created',
'beforeMount',
'mounted',
'beforeUpdate',
'updated',
'beforeDestroy',
'destroyed',
'activated',
'deactivated',
'errorCaptured',
'serverPrefetch'
];
.......
vm._self = vm;
initLifecycle(vm);
initEvents(vm);
initRender(vm);
callHook(vm, 'beforeCreate');
initInjections(vm); // resolve injections before data/props
initState(vm);
initProvide(vm); // resolve provide after data/props
callHook(vm, 'created');
可以看到vue在内部定义了一系列的生命周期钩子, 并在特定时刻通过callHook来调用. 具体实现是由开发者提供的, 如created钩子可以在模板加载时用来从后台加载数据.