【前端】Vue生命周期函数(详细讲解+中文图解)

这篇具有很好参考价值的文章主要介绍了【前端】Vue生命周期函数(详细讲解+中文图解)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、何为生命周期

1、含义

  • 生命周期:从vue实例产生开始到vue实例被销魂这段时间所经历的过程

2、理解

  • vue实例的创建和销毁过程好比人的一生从出现到死亡过程。在其中一些重大经历,也就是特殊时间点,我们可以做什么事情
  • 在vue的一生中,从vue组件创建开始一直到其被销毁时的时间段中,也被建立了几个特殊的时间点,为了方便开发者实现在特定的时候让vue在特定的时间做特定的事情。通过一个叫做“生命周期钩子函数”的方法进行设置。在vue中,vue的一生被8个生命周期钩子函数给支配着。
  • 也可以理解为回调函数,当我们写了周期函数后,在规定的时间点,vue会自动执行这个函数

钩子函数:可以简单理解为是一种系统在不同的阶段自动执行、用户无须干预的函数

二、生命周期定义(官网)

1、vue2

Vue2生命周期

2、vue3

Vue3生命周期

三、生命周期图解

1、vue2生命周期图解

【前端】Vue生命周期函数(详细讲解+中文图解),前端,vue.js,前端,javascript

2、vue3生命周期图解

【前端】Vue生命周期函数(详细讲解+中文图解),前端,vue.js,前端,javascript

四、Vue的生命周期

【前端】Vue生命周期函数(详细讲解+中文图解),前端,vue.js,前端,javascript

主要Vue生命周期事件被分为两个钩子,分别在事件之前和事件之后调用,vue应用程序中有4个主要事件(8个钩子)

● 创建–在组件创建时执行
● 挂载–DOM被挂载时执行
● 更新–当响应数据被修改时执行
● 销毁–在元素被销毁之前立即执行

五、Vue2生命周期和Vue3生命周期的区别

【前端】Vue生命周期函数(详细讲解+中文图解),前端,vue.js,前端,javascript

六、Vue生命周期的主要阶段以及8个周期函数

1、options API和composition API

在【options API】中,生命周期钩子是被暴露在vue实例上的选项,我们只需要调用使用即可
在【composition API】中,我们需要将生命周期钩子引入项目,才能使用

import { onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted } from 'vue'

【前端】Vue生命周期函数(详细讲解+中文图解),前端,vue.js,前端,javascript
组合API中,使用setup()方法替换了beforeCreate和created,那么这两个生命周期中的方法将放在setup()中执行

2、创建阶段(初始化相关属性):beforeCreate()、created()

  • beforeCreate
  • 注意点:在此时不能获取data中的数据,也就是说this.$data得到的是undefined
  • created

2、挂载前阶段:beforeMount()、onBeforeMount()

  1. 在组件DOM实际渲染之前调用,此时根元素还不在,在选项API中,可以使用this.$data来访问;在组合API中,想访问的话就必须在根元素上使用ref
import { ref, onBeforeMount } from "vue";

  export default {
    setup() {
      console.log("setup,创建前后")
      const count = ref({
        str: '你好',
        number: 123
      })

      onBeforeMount(() => {
        console.log("onBeforeMount -- composition API", "挂载前",count.value.str)
      })

      return {
        count,
      }
    },

    data(){
      return{
        number: 123
      }
    },
    beforeMount() {
      console.log("beforeMount -- options API,挂载前",this.$data.number)
    },

【前端】Vue生命周期函数(详细讲解+中文图解),前端,vue.js,前端,javascript

3、挂载后阶段:mounted()、onMounted()

  1. mounted()、onMounted()【页面加载完毕的时候就是此时】
  2. 注意点:默认情况下,在组件的生命周期中只会触发一次
import { ref, onMounted } from "vue";

  export default {
    setup() {
      console.log("setup,创建前后")
      const count = ref({
        str: '你好',
        number: 123
      })

      onMounted(() => {
        console.log("onMounted -- composition API", "挂载前",count.value.str)
      })

      return {
        count,
      }
    },

    data(){
      return{
        number: 123
      }
    },
    mounted() {
      console.log("mounted -- options API,挂载前",this.$data.number)
    },

【前端】Vue生命周期函数(详细讲解+中文图解),前端,vue.js,前端,javascript

4、更新阶段(元素或组件的变更操作):beforeUpdate()、updated()、onBeforeUpdate()、onUpdated()

  1. 数据更新时调用,DOM更新后,updated()、onUpdated()方法就会调用
  2. 可以重复触发的
<template>
  <div>
    <h1>Hello World</h1>
    {{ count.str }}
    <button @click="changeStr">修改str的按钮</button>
  </div>
  <hr />
  <div>
    <h1>Hello World</h1>
    {{ this.$data.number }}
    <button @click="changeNumber">修改number的按钮</button>
  </div>
</template>

<script>
  import { ref, onBeforeUpdate, onUpdated } from "vue";

  export default {
    //Vue3写法
    setup() {
      console.log("setup,创建前后")
      const count = ref({
        str: '你好',
        number: 123
      })
      onBeforeUpdate(() => {
        console.log("onBeforeUpdate -- composition API", "更新前")
      })
      onUpdated(() => {
        console.log("onUpdated -- composition API", "更新后",count.value.str)
      })

      function changeStr() {
        count.value.str = "已修改"
      }

      return {
        count,
        changeStr
      }
    },

    //Vue2写法
    data(){
      return{
        number: 123
      }
    },
    methods: {
      changeNumber() {
        this.$data.number = 456
      }
    },

    beforeUpdate() {
      console.log("beforeUpdate -- options API,更新前")
    },
    updated() {
      console.log("updated -- options API,更新后",this.$data.number)
    },
  }
</script>

【前端】Vue生命周期函数(详细讲解+中文图解),前端,vue.js,前端,javascript

5、销毁阶段(销毁相关属性):beforeUnmount()和onBeforeUnmounted()、unmounted()和onUnmounted()

何时触发?:关闭页面(不是浏览器)

<script>
import { ref, onBeforeUnmount, onUnmounted } from "vue";

export default {
    setup() {
        onBeforeUnmount(() => {
            console.log("onBeforeUnmount -- composition API", "销毁前")
        })
        onUnmounted(() => {
            console.log("onUnmounted -- composition API", "销毁后")
        })
    },


    beforeUnmount() {
        console.log("beforeUnmount -- options API,销毁前")
    },
    unmounted() {
        console.log("unmounted -- options API,销毁后")
    }
}
</script>

【前端】Vue生命周期函数(详细讲解+中文图解),前端,vue.js,前端,javascript

七、面试题

1、常用的vue的生命周期是哪些?

①、要点

4阶段,8个周期函数文章来源地址https://www.toymoban.com/news/detail-644363.html

2、如果组件存在父子关系时,父组件(A)与子组件(B)生命周期执行的顺序时怎样的?

①、思路

  • A组件有8个常用周期:创建2个、挂载2个、更新2个、销毁2个
  • B组件有8个常用周期:创建2个、挂载2个、更新2个、销毁2个

②、答案

  • 将8个周期划分为三阶段(1-4,5-6,7-8)
  • 渲染阶段:父1 → 父2 → 父3 → 子1 → 子2 → 子3 → 子4 → 父4
  • 更新阶段:父5 → 子5 → 子6 → 父6
  • 更新阶段:父5 → 子5 → 子6 → 父6

到了这里,关于【前端】Vue生命周期函数(详细讲解+中文图解)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 探索Vue生命周期钩子函数:从创生到销毁

    Vue这个引领前端开发潮流的框架,其优雅的响应式数据绑定和组件式开发方式,使得它备受瞩目。然而,Vue的魅力绝不仅限于此,它还赋予开发者一组神奇的生命周期钩子函数,能够在组件的各个成长阶段插入自定义代码。本文将带你进入Vue生命周期钩子函数的奇妙世界,一

    2024年02月11日
    浏览(42)
  • 【Vue3】2-11 : 生命周期钩子函数及原理分析

    一、组件生命周期概述 1.1 官方生命周期 1.2 钩子函数(回调函数) ▶  生命周期可划分为三个部分(- 表示执行循序): 二、实战:测试生命周期流程 >  代码  >  效果 每个组件在被创建时都要经过一系列的初始化过程 ——例如, 设置数据监听 编译模板 将实例挂载到

    2024年01月21日
    浏览(41)
  • Vue2技能树(3)-声明式渲染、指令大全、生命周期函数

    👍 点赞,你的认可是我创作的动力! ⭐️ 收藏,你的青睐是我努力的方向! ✏️ 评论,你的意见是我进步的财富! Vue2技能树(1)-介绍、导入使用、响应式数据绑定、组件化开发 vue2技能树(2)-模板语法、vue的工具链、渐进式框架 Vue2技能树(3)-声明式渲染、指令大全、生命周

    2024年02月07日
    浏览(51)
  • 微信小程序——生命周期,生命周期的分类,页面生命周期,生命周期函数的分类,应用的生命周期函数,页面的生命周期函数,wxs脚本概述

    生命周期( Life Cycle )是指一个对象从创建-运行-销毁的整个阶段,强调的是一个时间段。 例如: .张三出生,表示这个人生命周期的开始 .张三离世,表示这个人生命周期的结束 .中间张三的一生,就是张三的生命周期 我们可以把每个小程序运行的过程,也概括为生命周

    2024年02月01日
    浏览(62)
  • Ionic4 生命周期钩子函数和angular生命周期钩子函数介绍

    Ionic 4(以及之后的 Ionic 版本)使用了 Angular 生命周期钩子,因为 Ionic 是基于 Angular 构建的。因此,Ionic 4 中的生命周期与 Angular 组件生命周期非常相似。以下是一些常见的 Ionic 4 生命周期钩子: ionViewDidLoad : 在页面加载完成后触发。通常用于执行一次性的初始化任务。不推

    2024年02月07日
    浏览(54)
  • react17:生命周期函数

    挂载时 更新时 setState触发更新、父组件重新渲染时触发更新 forceUpdate触发更新 卸载时 react(v17.0.2)的生命周期图谱如下。  相较于16版本,17版本生命周期函数有如下变化: componentWillMount() componentWillUpdate() componentWillReceiveProps() +getDerivedStateFromProps(props,state) +getSnapshotBeforeUp

    2024年02月11日
    浏览(48)
  • [Angular 基础] - 生命周期函数

    之前的笔记: [Angular 基础] - Angular 渲染过程 组件的创建 [Angular 基础] - 数据绑定(databinding) [Angular 基础] - 指令(directives) 以上为静态页面,即不涉及到跨组件交流的内容 以下涉及到组件内的沟通,从这开始数据就“活”了 [Angular 基础] - 自定义事件 自定义属性 [Angular 基础]

    2024年02月20日
    浏览(41)
  • 生命周期函数和wxs脚本

    应用的生命周期函数:指小程序从启动 - 运行 - 销毁期间依次调用的那些函数。 小程序的应用生命周期函数需要在 app.js 中进行声明。 上面这张图就是从前台进入了后台。后台进入前台反之同理。 页面的生命周期函数:指小程序中,每个页面从加载 - 渲染 - 销毁期间依次调

    2024年02月16日
    浏览(39)
  • 【Unity函数执行顺序(Unity脚本生命周期函数)】

    温故而知新,下面我将介绍Unity入门需要了解的常用生命周期函数 生命周期函数就是该脚本对象依附的GameObject对象从出生到消亡整个生命周期中 会通过反射自动调用的一些特殊函数。 下面是对各个函数解锁 a.调用情况: 1.在加载场景时初始化包含脚本激活状态的GameObject时。

    2023年04月23日
    浏览(51)
  • 【react】react生命周期钩子函数:

    一、生命周期概念: 生命周期:简单来说就是一个事物从出生到消亡的过程就是生命周期,在React中的生命周期,就是组件从创建、挂载到页面再到卸载组件的过程。 意义:生命周期有助于理解组件运行方式、完成复杂组件功能、分析组件中间问题产生的原因等。 生命周期钩子函数

    2024年02月14日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包