请简述JavaScript钩子函数包括哪些。
时间: 2023-06-13 12:04:36 浏览: 150
JavaScript钩子函数包括以下几种:
1. beforeCreate:在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。
2. created:实例已经创建完成之后调用,此阶段可以访问到data、methods、computed等属性,$el属性还不存在,DOM节点也未生成。
3. beforeMount:在挂载开始之前被调用,相关的render函数首次被调用。
4. mounted:el被新创建的vm.$el替换,并挂载到实例上去之后调用该钩子函数,此时实例已经可以访问到被渲染出来的DOM节点。
5. beforeUpdate:数据更新时调用,发生在虚拟DOM重新渲染和打补丁之前,可以在该钩子函数中进一步地更改状态,不会触发附加的重渲染过程。
6. updated:由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用该钩子函数,可以执行依赖于DOM的操作。
7. beforeDestroy:实例销毁之前调用,在这一步,实例仍然完全可用,可以执行一些清理操作,比如清除计时器、解绑全局事件等等。
8. destroyed:实例销毁之后调用,调用后,所有的事件监听器会被移除,所有的子实例也会被销毁。
相关问题
简述vue生命周期及运行的钩子函数
Vue的生命周期分为8个阶段,分别是:
1. beforeCreate:组件实例被创建之初,此时数据观测和事件机制都未初始化,无法访问到data、computed、watch、methods、$el等选项。
2. created:组件实例已经完成了数据观测,也就是data、computed、watch等选项都可以访问,但是此时还未完成模板的编译,$el选项还不能访问。
3. beforeMount:模板编译完成,但尚未挂载到页面上。
4. mounted:模板已经被挂载到页面上,此时可以访问到$el选项,也可以对DOM进行操作。
5. beforeUpdate:组件更新之前,此时data数据已经更新,但是DOM还没有更新。
6. updated:组件更新完成,此时DOM已经更新完成,可以进行操作。
7. beforeDestroy:组件销毁之前,此时组件实例仍然可以访问。
8. destroyed:组件已经销毁,此时组件实例已经无法访问。
Vue的运行钩子函数包括:
1. beforeCreate:在实例初始化之后,数据观测之前被调用。
2. created:实例创建完成后被立即调用,此时完成了数据观测和初始化,但是还没有挂载到页面上。
3. beforeMount:在挂载开始之前被调用,也就是在模板编译之后,但是在将模板渲染到页面之前。
4. mounted:在挂载到页面之后被调用,此时可以进行DOM操作。
5. beforeUpdate:在组件更新之前被调用,此时data数据已经更新,但是DOM还没有更新。
6. updated:在组件更新之后被调用,此时DOM已经更新完成,可以进行操作。
7. beforeDestroy:在实例销毁之前被调用,此时组件实例仍然可以访问。
8. destroyed:在实例销毁之后被调用,此时组件实例已经无法访问。
请简述javascript作用域链。
JavaScript作用域链是指在JavaScript中,每个函数都有一个作用域链,它由当前函数的变量对象和所有外部函数的变量对象组成。当访问一个变量时,JavaScript引擎会先在当前函数的变量对象中查找,如果找不到,就会向上遍历作用域链,直到找到该变量或者遍历完整个作用域链。如果还是找不到,就会返回undefined。这个过程被称为作用域链查找。