Vue的生命周期有哪些,第一次页面加载会触发哪几个钩子函数?
时间: 2023-06-19 16:08:23 浏览: 193
Vue的生命周期钩子函数可以分为8个,分别是:
1. beforeCreate(创建前):在Vue实例初始化之后,数据观测(data observer)和事件配置(event/watcher setup)之前被调用。
2. created(创建后):在Vue实例创建完成后立即被调用。在这一步,实例已完成以下配置:数据观测(data observer),属性和方法的运算,watch/event事件回调。然而,挂载阶段还没开始,$el属性目前是undefined。
3. beforeMount(挂载前):在挂载开始之前被调用:相关的render函数首次被调用。
4. mounted(挂载后):el被新创建的vm.$el替换,并挂载到实例上去之后调用该钩子函数。此时,组件已经被渲染到页面上。
5. beforeUpdate(更新前):在数据更新之前调用,发生在虚拟DOM重新渲染和打补丁之前。
6. updated(更新后):在由于数据更改导致的虚拟DOM重新渲染和打补丁之后调用。
7. beforeDestroy(销毁前):在实例销毁之前调用。这一步,实例仍然完全可用。
8. destroyed(销毁后):在实例销毁之后调用。调用后,Vue实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。
第一次页面加载会触发 beforeCreate 和 created 两个钩子函数。
相关问题
vue第一次加载会触发哪几个钩子
在Vue的生命周期中,第一次加载触发了以下几个钩子函数:
1. beforeCreate(组件实例创建前钩子)- 在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用,此时组件实例的属性方法并未初始化。
2. created(组件实例创建后钩子)- 在实例创建完成后被立即调用,此时组件实例已完成了数据观测,属性方法也已经初始化。
3. beforeMount(组件挂载前钩子)- 在挂载开始之前被调用,此时模板编译已完成,但尚未挂载到页面上的DOM上。
4. mounted(组件挂载后钩子)- 在实例挂载到页面的DOM元素上后被调用,此时组件已经挂载到页面上,并且可以进行DOM操作、发送请求等一系列操作。
5. beforeUpdate(组件更新前钩子)- 在数据更新之前被调用,此时页面上的数据还是旧的,DOM还未更新。
6. updated(组件更新后钩子)- 在数据更新之后被调用,此时页面上的数据已经更新,DOM也已完成更新。
7. activated(组件激活时钩子)- 在keep-alive组件激活时调用,只适用于动态组件。
8. deactivated(组件停用时钩子)- 在keep-alive组件停用时调用,只适用于动态组件。
9. beforeDestroy(组件销毁前钩子)- 在实例销毁之前被调用,此时组件实例仍然完全可用。
10. destroyed(组件销毁后钩子)- 在实例销毁之后被调用,此时组件实例完全销毁,无法再调用其属性方法。
注意:以上钩子函数只适用于组件实例,对于根实例中的钩子函数,需在创建Vue实例时指定。
vue生命周期中有inserted钩子函数?
Vue.js 的生命周期插槽中有一个名为 `inserted` 的钩子函数,它会在组件实例挂载到 DOM 中并且所有相关的数据属性也被初始化之后触发。这个阶段意味着DOM元素已经被添加到了文档中,并且可以通过 JavaScript 访问和修改它们,但是数据驱动的更新还未开始。
在这个 `inserted` 阶段,你可以执行一些依赖于DOM插入后的操作,比如设置事件监听器、绑定计算属性等,因为此时DOM已经稳定,不会因为数据变化而改变。
```javascript
// 示例代码
export default {
mounted() {
this.$nextTick(() => {
// 在这里执行可能会依赖DOM渲染的任务
this.handleDomInsertion();
});
},
inserted() {
// 在此处可以直接访问并操作DOM
const element = document.querySelector('#myElement');
element.addEventListener('click', this.handleClick);
},
methods: {
handleDomInsertion() {
//...
},
handleClick() {
//...
}
}
}
```
阅读全文