vue2生命周期函数的基本使用与执行过程

首先,一共有8个生命周期函数

1:初始化

<script>
export default {
beforeCreate(){}
//初始化前
created(){}
//初始化后
}
</script>

beforeCreate(){}:由于是初始化前,无法通过该函数使用data与methods里的变量与方法,因为data与methods还未初始化。

created(){}:初始化后,这个函数里可以使用data与methods里的变量。

2:挂载

<script>
export default {
beforeMount(){}
//挂载真实dom前
mounted(){}
//挂载真实dom后
}
</script>

beforeMount(){}:这里无法使用真实dom,一般在这里预处理data数据。

mounted(){}:可以使用真实dom

3:更新

<script>
export default {
beforeUpdate(){}
//更新dom前
updated(){}
//更新dom后
}
</script>

beforeUpdate(){}:无法使用更新后的dom

updated(){}:可以使用更新后的dom

4:销毁

<script>
export default {
beforeDestory(){}
//销毁前
destoryed(){}
//销毁后
}
</script>

流程:

<script>
export default {
beforeCreate(){}
//初始化前
created(){}
//初始化后
//在初始化阶段的钩子函数只会执行一次


beforeMount(){}
//挂载真实dom前
mounted(){}
//挂载真实dom后
//挂载阶段的钩子函数也只会执行一次


beforeUpdate(){}
//更新dom前
updated(){}
//更新dom后
//每次更新完dom元素,页面刷新,都会导致更新阶段的钩子函数执行一次


beforeDestory(){}
//销毁前
destoryed(){}
//销毁后
//最后销毁时执行一次
}
</script>

执行流程:

初始化阶段:

  • 1:实例化vue(组件也算vue实例)。 new Vue()或者components:{组件名:引入组件时的名称}

  • 2:向实例化对象添加属性,方法与生命周期函数。

  • 3:挂载beforeCreate钩子函数,挂载后会自动被vue调用执行,在该钩子函数里无法放问data(){}里的变量,因为上一步没有把data(){}与methods:{}挂载到实例对象上。

  • 4:初始化data与methods,同时把属性挂载到vue实例对象身上。这步过后才能使用this.变量名使用data(){}里的变量。

  • 5:挂载created钩子函数并执行,这里的钩子函数可以使用data(){},与methods里的变量与方法。

  • 6:编译模板,分析。先检查有无el选项。若无,则等待vue实例对象手动调用$.mount方法,若有,则继续顺位执行。这里el选项就是决定vue实例编译好模板后要把编译后的标签结构挂到哪里。具体在main.js文件里,new Vue({el:'#app'})。el选项把vue实例化编译后的模板挂载到index.html的id叫app的标签上

挂载阶段:

  • 7:检查有无template选项,若有则编译,这个template选项作为渲染函数,然后继续顺位执行下一步,若无则编译,el选项指定的标签作为要渲染的模板然后继续顺位执行下一步。

  • 8:执行beforeMount函数,这里无法使用真实dom标签。

  • 9:创建虚拟dom替换到el指定的真实dom上

  • 10:真实dom挂载完毕

  • 11:触发mounted函数,这里可以使用真实dom标签

更新阶段:

  • 12:当data里数据改变后,就要执行beforeUpdate函数,这里无法拿到更新后的真实dom。

  • 13:当data数据发生变化后,会先对比新旧dom,找出差异,打补丁把真实dom更新。

  • 14:触发updated函数,可以使用更新后的dom

  • 当data数据改变,则会再次重复更新阶段。

销毁阶段:

  • 15:触发销毁流程,触发beforeDestory函数

  • 16:移除所有数据监视器,子组件,事件侦听器。

  • 17:把当前vue实例完全销毁,触发destroyed函数。

  • 在销毁阶段。可以销毁之前创建的计时器,定时器,eventBus。eventBus使用$off关闭。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3引入了一些新的生命周期函数,并且对一些旧的生命周期函数进行了调整和重命名。下面是Vue 3中常用的生命周期函数及其使用方法: 1. `beforeCreate`:在实例初始化之后,数据观测和事件配置之前被调用。在这个阶段,实例的属性和方法还未被初始化。 ```javascript beforeCreate() { // 在这里无法访问到 data、methods 等属性 } ``` 2. `created`:实例创建完成后被调用。在这个阶段,可以访问到 data、methods 等属性。 ```javascript created() { // 可以访问到 data、methods 等属性 } ``` 3. `beforeMount`:在挂载开始之前被调用。在这个阶段,模板编译已完成,但尚未将挂载的元素替换为实例的模板。 ```javascript beforeMount() { // 模板已编译完成,但尚未挂载 } ``` 4. `mounted`:在挂载完成后被调用。在这个阶段,实例已经挂载到DOM上,可以访问到DOM节点。 ```javascript mounted() { // 实例已经挂载到DOM上 } ``` 5. `beforeUpdate`:在数据更新之前被调用,发生在虚拟DOM重新渲染之前。 ```javascript beforeUpdate() { // 数据更新前的操作 } ``` 6. `updated`:在数据更新完成后被调用,发生在虚拟DOM重新渲染之后。 ```javascript updated() { // 数据更新后的操作 } ``` 7. `beforeUnmount`:在卸载组件之前被调用。 ```javascript beforeUnmount() { // 组件卸载前的操作 } ``` 8. `unmounted`:在卸载组件之后被调用。 ```javascript unmounted() { // 组件卸载后的操作 } ``` 这些是Vue 3中常用的生命周期函数,通过在组件中定义这些函数,可以在不同的阶段执行相应的操作。请注意,在Vue 3中已经移除了一些旧的生命周期函数,比如`beforeDestroy`和`destroyed`,可以使用`beforeUnmount`和`unmounted`来替代。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值