首页 > 其他分享 >VUE实例的生命周期钩子函数有哪些

VUE实例的生命周期钩子函数有哪些

时间:2024-09-12 14:04:08浏览次数:12  
标签:生命周期 console log 实例 钩子 Vue VUE

Vue.js 实例的生命周期钩子函数是在 Vue 实例的不同阶段被调用的方法,开发者可以在这些钩子函数中执行相应的逻辑。以下是 Vue 实例的生命周期钩子函数及其作用的详细介绍:

生命周期钩子函数

  1. beforeCreate

    • 在实例初始化后,数据观测和事件配置之前被调用。
    • 此时,实例的 dataevents 还没有被设置。
  2. created

    • 实例创建完成后被调用,此时已经设置了数据观测和事件。
    • 可以访问 data,并且可以进行 API 请求等操作。
    • 此时,DOM 还未被渲染。
  3. beforeMount

    • 在挂载开始之前被调用,在此阶段,模板已被编译,但还没有被插入到 DOM 中。
  4. mounted

    • 实例被挂载后立即调用,此时可以访问到 DOM 元素。
    • 适合进行需要依赖 DOM 的操作,如获取元素的宽高、第三方库的初始化等。
  5. beforeUpdate

    • 数据更新之前被调用,可以在此阶段进行数据的处理或清理操作。
  6. updated

    • 数据更新后被调用,此时 DOM 已重新渲染。
    • 适合在数据更新后执行某些操作,但要小心避免在此钩子中再次触发更新。
  7. beforeDestroy

    • 实例销毁之前被调用,此时可以进行清理操作,如取消定时器、解绑事件等。
  8. destroyed

    • 实例销毁后被调用,此时所有的事件监听和子组件都已被移除。
    • 可以进行额外的清理操作。

生命周期图示

以下是 Vue 实例的生命周期图示,帮助理解各个钩子的执行顺序:

beforeCreate
 └──> created
         └──> beforeMount
                 └──> mounted
                         └──> beforeUpdate
                                 └──> updated
                                         └──> beforeDestroy
                                                 └──> destroyed

示例

new Vue({
    data: {
        message: 'Hello, Vue!'
    },
    beforeCreate() {
        console.log('beforeCreate: 实例正在初始化');
    },
    created() {
        console.log('created: 实例已创建');
    },
    beforeMount() {
        console.log('beforeMount: 实例即将挂载');
    },
    mounted() {
        console.log('mounted: 实例已挂载');
    },
    beforeUpdate() {
        console.log('beforeUpdate: 数据即将更新');
    },
    updated() {
        console.log('updated: 数据已更新');
    },
    beforeDestroy() {
        console.log('beforeDestroy: 实例即将销毁');
    },
    destroyed() {
        console.log('destroyed: 实例已销毁');
    }
}).$mount('#app'); // 挂载到页面元素

总结

Vue 的生命周期钩子函数提供了在特定时间点执行代码的机会,帮助开发者管理不同阶段的逻辑。通过合理利用这些钩子函数,能更有效地处理数据和 DOM 交互,提升应用的性能与可维护性。

标签:生命周期,console,log,实例,钩子,Vue,VUE
From: https://www.cnblogs.com/love-DanDan/p/18410061

相关文章

  • VUE双向数据绑定
    在Vue.js中,双向数据绑定是其核心特性之一,它允许数据在模型和视图之间自动同步。以下是关于Vue的双向数据绑定的详细说明,包括原理、实现方式和示例。1.双向数据绑定的原理Vue.js通过使用数据劫持和发布-订阅模式实现双向数据绑定。当数据模型发生变化时,视图会自动更新;......
  • VUE父子组件如何通信
    在Vue.js中,父子组件之间的通信有多种方式。以下是几种常见的方法:1.通过Props传递数据(父组件向子组件)父组件可以通过props将数据传递给子组件。这是父子组件之间最常见的通信方式。<!--ParentComponent.vue--><template><ChildComponent:message="parentMessage"......
  • 解决vue3 useRoute无法获取get参数记录
    总结:使用route.query无法获取到get参数,开发模式代码改动能拿到,但是刷新又没了,需要监听route.query才能拿到get参数。正文:我的常规使用方法:先安装vue-routernpminstallvue-router@next创建src/router/index.js:import{createRouter,createWebHistory}from'vue-rou......
  • Vue3学习
    Vue3学习Vue3学习(一)——创建Vue3工程1.安装Node.js首先,确保你的系统上已经安装了Node.js。你可以通过运行以下命令检查:node-vnpm-v2.使用Vite创建Vue3项目在终端(命令行)中,运行以下命令来创建一个新的Vue3项目:npmcreatevite@latestmy-vue-app----temp......
  • 【开源免费】基于SpringBoot+Vue.JS在线视频教育平台(JAVA毕业设计)
    本文项目编号T027,文末自助获取源码\color{red}{T027,文末自助获取源码}......
  • 【开源免费】基于SpringBoot+Vue.JS校园管理系统(JAVA毕业设计)
    本文项目编号T026,文末自助获取源码\color{red}{T026,文末自助获取源码}......
  • vue3兄弟组件间的通信 mitt
    1、安装插件npmimitt-s2、在scr下的utils文件创建mitt.ts文件/***@author*@date20240912*@descriptionCreate$bus,使用方式$bus.emit/$bus.on**/importmittfrom'mitt'const$bus=mitt()exportdefault$bus两个子组件都引入mitt.js文件3、......
  • vite如何打包vue3插件为JSSDK
    安装vitenpmcreatevite@latest你还可以通过附加的命令行选项直接指定项目名称和你想要使用的模板。例如,要构建一个Vite+Vue+ts项目,运行:#npm7+,需要添加额外的--:npmcreatevite@latestmy-vue-app----templatevue-ts查看create-vite以获取每个模板的更多细......
  • vue优点/插值表达式/强制绑定
    1.Vue.js的优点体积小:压缩后只有33k;更高的运行效率:基于虚拟DOM,一种可以预先通过JavaScript进行各种计算,把最终的DOM操作计算出来并优化的技术,由于这种DOM操作属于预处理操作,并没有真实的操作DOM,所以叫做虚拟DOM;双向数据绑定:让开发者不用再去操作DOM对象,把更多的精力投入到业务......
  • 锋哥写一套前后端分离Python权限系统 基于Django5+DRF+Vue3.2+Element Plus+Jwt 视频
    大家好,我是java1234_小锋老师,最近写了一套【前后端分离Python权限系统基于Django5+DRF+Vue3.2+ElementPlus+Jwt】视频教程,持续更新中,计划月底更新完,感谢支持。视频在线地址:打造前后端分离Python权限系统基于Django5+DRF+Vue3.2+ElementPlus+Jwt视频教程(火爆连载更新中......