Vue生命周期函数调用详解

yizhihongxing

Vue生命周期函数调用详解

Vue的生命周期函数是Vue组件在实例化、更新、销毁等关键时刻自动执行的函数,我们可以通过实现这些函数来执行一些必要的逻辑操作。在开发Vue应用时,了解地址这些生命周期函数的调用顺序及其用途非常重要。本文将深入探讨Vue的生命周期函数,帮助大家更好地掌握Vue的使用技巧。

Vue生命周期函数分类

Vue中的生命周期函数分为四类:

  • 创建期间的生命周期函数:在实例化Vue组件时自动调用。
  • 更新期间的生命周期函数:在组件属性或数据发生变化时自动调用。
  • 销毁期间的生命周期函数:在组件被销毁时自动调用。
  • 负责 render 的 生命周期函数:如 beforeMount、mounted。

接下来将重点介绍这些生命周期函数的调用时间、作用及其使用示例。

创建期间的生命周期函数

beforeCreate

函数调用时间:在实例化Vue组件时自动调用,此时组件的数据、事件和生命周期函数都尚未初始化。

作用:使用beforeCreate可以进行一些初始化工作,例如全局注册全局事件等。

使用示例:

export default {
  beforeCreate () {
    console.log('beforeCreate 正在执行')
    this.$on('create', () => {
      console.log('create事件被触发')
    })
  }
}

created

函数调用时间:在实例化Vue组件时自动调用,此时组件的数据已经被初始化。

作用:使用created可以进行一些组件需要用到数据的初始化工作,例如获取异步数据、初始化视图等。

使用示例:

export default {
  created () {
    console.log('created 正在执行')
    axios.get('/api/data')
    .then(response => {
      this.data = response.data
    })
  }
}

beforeMount

函数调用时间:在组件挂载DOM节点前自动调用。

作用:在beforeMount钩子函数中我们可以对组件的DOM节点进行修改,比如手动插入一个loading组件等。

使用示例:

export default {
  beforeMount() {
    console.log('beforeMount 正在执行')
    this.$refs.loading.show()
  }
}

mounted

函数调用时间:在组件挂载DOM节点后自动调用。

作用:使用mounted可以在组件的DOM节点准备就绪后执行一些操作,例如与第三方库进行交互、操作DOM节点等。

使用示例:

export default {
  mounted() {
    console.log('mounted 正在执行')
    const echartsInstance = this.$refs.echartsInstance
    const option = this.getOption()
    echartsInstance.setOption(option)
  }
}

更新期间的生命周期函数

beforeUpdate

函数调用时间:在组件数据变化后,DOM节点重新渲染之前自动调用。

作用:在beforeUpdate中可以进行一些节点操作,例如获取更新后的DOM节点高度等。

使用示例:

export default {
  beforeUpdate() {
    console.log('beforeUpdate 正在执行')
    const echartsInstance = this.$refs.echartsInstance
    const option = this.getOption()
    echartsInstance.setOption(option)
  }
}

updated

函数调用时间:在组件数据变化后,DOM节点重新渲染之后自动调用。

作用:使用updated可以进行当前DOM节点状态与前一状态之间的比较操作。

使用示例:

export default {
  updated() {
    console.log('updated 正在执行')
    const newHeight = this.$refs.echartsInstance.offsetHeight
    if (newHeight !== this.height) {
      this.height = newHeight
      this.$emit('height-change')
    }
  }
}

销毁期间的生命周期函数

beforeDestroy

函数调用时间:在组件被销毁之前自动调用。

作用:使用beforeDestroy可以进行组件销毁之前的一些操作,例如取消全局事件监听等。

使用示例:

export default {
  beforeDestroy() {
    console.log('beforeDestroy 正在执行')
    this.$off('click', this.handleClick)
  }
}

destroyed

函数调用时间:在组件被销毁之后自动调用。

作用:使用destroyed可以在组件被销毁后进行一些清理操作,例如清除定时器等。

使用示例:

export default {
  destroyed() {
    console.log('destroyed 正在执行')
    clearInterval(this.timer)
  }
}

负责 render 的 生命周期函数

beforeMount

函数调用时间:在组件实例首次渲染之前调用,即在模板编译为渲染函数之后,渲染函数首次执行之前调用。

作用:在beforeMount函数调用期间,我们可以对Vue组件的模板进行更改,例如对其中的文本内容插入其他元素等。

使用示例:

export default {
  render(h) {
    console.log('render 正在执行')

    if (this.show) {
      return h('div', this.msg)
    } else {
      return null
    }
  }
}

mounted

函数调用时间:在组件实例首次渲染之后调用。

作用:使用mounted进行一些DOM操作,例如获取可滚动高度等。

使用示例:

export default {
  mounted() {
    console.log('mounted 正在执行')
    const container = this.$el.querySelector('.container')
    this.scrollHeight = container.scrollHeight
  }
}

总结

以上便是Vue生命周期函数的详细说明了,我们可以在适当的生命周期函数中编写相关的逻辑代码和DOM操作来实现业务需求。掌握好生命周期函数,可以使我们在开发Vue应用时更加得心应手。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue生命周期函数调用详解 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Vue3组合式API之getCurrentInstance详解

    Vue3组合式API之getCurrentInstance详解 前言 getCurrentInstance 是 Vue 3.x 中 Composition API 的一个常用钩子函数,它可以在组件函数内获取当前组件实例的上下文,便于我们使用其它 Composition API。 使用方法 在组件函数内调用 getCurrentInstance 即可获取当前组…

    Vue 2023年5月28日
    00
  • vue-cli webpack模板项目搭建及打包时路径问题的解决方法

    Vue-cli webpack模板项目搭建及打包时路径问题的解决方法 Vue-cli提供了Webpack的模板项目,使用这个模板项目可以快速地搭建一个Vue项目,并且提供了大量的开发工具和插件,方便我们进行开发、调试和打包等操作。但是当我们要在打包时把项目部署到服务器上时,会遇到一些路径问题。 1. 安装Vue-cli 首先,我们需要安装Vue-cli,打开…

    Vue 2023年5月28日
    00
  • Vue3中的setup语法糖、computed函数、watch函数详解

    当然,下面是详细讲解”Vue3中的setup语法糖、computed函数、watch函数详解”的完整攻略。 Vue3中的setup语法糖 Vue 3中,通过setup函数,我们能够更加灵活地组合组件逻辑,并且避免在组件外部缩小组件范围。同时,setup函数也为我们提供了更多的代码执行选项,使得我们能够在更多的场景下使用Vue。 下面是一个HelloWorld…

    Vue 2023年5月28日
    00
  • Vue实现textarea固定输入行数与添加下划线样式的思路详解

    首先我们要明确需求:实现一个文本框,在输入文字达到固定的行数后(比如说4行),禁止继续输入,同时在每一行末尾添加下划线样式。 思路概述 我们可以通过Vue指令的方式来实现这一需求。具体而言,我们需要通过以下步骤来实现: 监听文本框输入事件,当输入框的文字超过指定行数时禁止继续输入; 在每一行末尾添加下划线样式; 实现步骤 1. 监听输入事件 我们在Vue的d…

    Vue 2023年5月27日
    00
  • Vue 理解之白话 getter/setter详解

    Vue 理解之白话 getter/setter详解 什么是getter/setter? 在Vue中实现数据双向绑定的原理是通过getter/setter来实现的。简单来说,getter就是在获取属性值时执行的代码,setter则是在设置属性值时执行的代码。getter和setter通常被称为“计算属性”和“watcher”。 如何定义getter/sette…

    Vue 2023年5月27日
    00
  • vue-router路由懒加载及实现的3种方式

    接下来我会针对“vue-router路由懒加载及实现的3种方式”进行详细讲解。整个过程分为以下几个步骤: 路由懒加载是什么? 路由懒加载是指延迟加载路由组件,当组件被访问时才会加载该组件,而不是一次性加载所有组件。 为什么要使用路由懒加载? 使用路由懒加载可以提升页面的加载速度,特别是在项目较大、组件较多的情况下,可以大幅减少首屏加载时间,提升用户体验。 实…

    Vue 2023年5月28日
    00
  • vue3使用flv.js播放推流视频的示例代码

    下面是关于“vue3使用flv.js播放推流视频的示例代码”的完整攻略: 1. 大体思路 首先,我们需要了解一下使用 FLV.js 播放推流视频的思路。 推流视频一般使用推送协议,如 RTMP,这种协议一般是使用 Flash 直播内核来推送。而 FLV.js 是一个基于浏览器的 FLV 视频播放器,可以使用它来播放推流视频。 具体来说,在 Vue 组件中,我…

    Vue 2023年5月28日
    00
  • Vue的底层原理你了解多少

    Vue的底层原理 什么是 Vue Vue.js 是一款用于构建用户界面的渐进式框架,其核心库只关注视图层,易于上手且灵活,同时也能与其它库或已有项目整合。Vue.js 功能强大且支持自定义指令和组件。Vue 官方文档使用的是 Markdown 格式编写,这也说明了 Vue 在开发中注重文档规范和易读性。 Vue 的底层原理 Vue 并不是一个黑盒子,其底层原…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部