首页 > 其他分享 >Vue——生命周期函数

Vue——生命周期函数

时间:2024-06-02 13:32:36浏览次数:21  
标签:生命 Vue 实例 DOM 钩子 周期函数 调用 组件

Vue.js的生命周期是组件从创建到销毁过程中的一系列钩子函数,这些钩子给开发者提供了在不同阶段添加自己的代码的机会。

Vue.js 2.x 版本的生命周期主要包括以下几个阶段:

  1. 创建前/后(beforeCreate/created)

    • beforeCreate: 在实例初始化之后、数据观测 (data observer) 和 event/watcher 事件配置之前被调用。
    • created: 在实例创建完成后被立即调用。在这一步,实例已完成以下的配置:数据观测、属性和方法的运算、watch/event 事件回调。这里没有$el,如果需要与DOM进行交互,或者发送请求获取数据,通常是在这里进行。
  2. 挂载前/后(beforeMount/mounted)

    • beforeMount: 在挂载开始之前被调用,相关的 render 函数首次被调用。此时,模板已经编译成了渲染函数,但是还没有挂载到DOM中。
    • mounted: 在 el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。如果根实例挂载到了文档内部,当mounted被调用时,组件已经在DOM中。
  3. 更新前/后(beforeUpdate/updated)

    • beforeUpdate: 在数据更新之后、DOM重新渲染和打补丁之前调用。可以在这个钩子中进一步地更改状态,这不会触发附加的重渲染过程。
    • updated: 在由于数据更改导致的虚拟DOM重新渲染和打补丁之后调用。调用时,组件DOM已经更新,所以可以执行依赖于DOM的操作。但是在大多数情况下,应该避免在此期间更改状态,因为这可能会导致更新无限循环。
  4. 销毁前/后(beforeDestroy/destroyed)

    • beforeDestroy: 在实例销毁之前调用。实例仍然完全可用,这是清理定时器或取消事件订阅的最佳时机。
    • destroyed: 在 Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器被移除,所有的子实例也都被销毁。
  5. 另外两个钩子(activated/deactivated)

    • activated: 被 keep-alive 缓存的组件激活时调用。
    • deactivated: 被 keep-alive 缓存的组件停用时调用。

生命周期的作用:

  • 初始化数据/事件:在beforeCreatecreated钩子中,可以设置组件的初始数据或者进行事件监听。
  • DOM交互:在mounted钩子中,可以进行DOM操作,或者在浏览器完成渲染后执行操作。
  • 数据更新:在beforeUpdateupdated钩子中,可以对数据更新前后的DOM进行处理。
  • 资源清理:在beforeDestroydestroyed钩子中,可以执行必要的清理任务,比如清除定时器和解绑事件监听。
  • 缓存处理activateddeactivated钩子在使用keep-alive进行组件缓存时非常有用,它们可以控制缓存内容的激活与停用。

标签:生命,Vue,实例,DOM,钩子,周期函数,调用,组件
From: https://blog.csdn.net/2202_75468889/article/details/139390280

相关文章

  • JAVA计算机毕业设计基于Vue学生选课管理系统(附源码+springboot+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在现代高等教育体系中,学生选课管理是一项复杂且至关重要的工作。随着学生人数的不断增加和课程种类的日益丰富,传统的手工选课管理方式已经无法满足高......
  • JAVA计算机毕业设计基于vue图书馆选座系统设计与实现(附源码+springboot+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着高校图书馆的日益繁忙和学生对学习环境需求的提高,图书馆座位管理成为了一个亟待解决的问题。传统的图书馆座位管理方式往往存在效率低下、资源浪......
  • 『手撕Vue-CLI』下载指定模板
    开篇经上篇文章的介绍,实现了获取下载目录地址,接下来实现下载指定模板的功能。背景通过很多章节过后,已经可以拿到模板名称,模板版本号,下载目录地址,这些信息都是为了下载指定模板做准备的。实现如何从GitHub下载模板可以借助download-git-repo这个库来下载GitHub上的模......
  • 【vue源码】虚拟DOM和diff算法
    虚拟DOM与AST抽象语法树的区别虚拟DOM是表示页面状态的JavaScript对象,(虚拟DOM只有实现diff算法)而AST是表示代码语法结构的树形数据结构。虚拟DOM通常用于优化页面渲染性能,而AST通常用于进行代码静态分析、代码转换等操作。(AST主要执行compiler编译)什么是虚拟DOM?用JavaSc......
  • 【手撕面试题】Vue(高频知识点三)
            每天10道题,100天后,搞定所有前端面试的高频知识点,加油!!!在看文章的同时,希望不要直接看答案,先思考一下自己会不会,如果会,自己的答案是什么?想过之后再与答案比对,是不是会更好一点,当然如果你有比我更好的答案,欢迎评论区留言,一起探讨技术之美。目录面试官:请简述一下v......
  • vue3 vite 项目tsx写法尝试
    vite配置上面jsx插件搞好就能在vue项目中使用jsx写法了代码尝试ChildWorld.vue<scriptlang="tsx">import{defineComponent,defineProps}from"vue"constchildAbc=()=>{return(<div>childAbc</div>)}constchildCbd=(props,......
  • 【Vue】深入理解MVVM模式的魔力
    目录前言一、MVVM模式是什么?二、具体示例总结前言    Vue.js是一种基于JavaScript的前端框架,它采用了MVVM(Model-View-ViewModel)模式来实现数据的双向绑定。在本篇博客中,我将介绍MVVM模式的基本概念,并演示如何使用Vue.js来实现这种模式。一、MVVM模式是什么? ......
  • 【Vue】中v-if和v-show的区别到底在哪里?
    概要   Vue.js是一种流行的JavaScript框架,用于构建交互式的Web应用程序。在Vue.js中,v-if和v-show是两个常用的指令,用于控制DOM元素的显示与隐藏。本文将介绍它们之间的区别。整体架构流程   Vue.js的整体架构基于虚拟DOM和响应式数据,当数据发生变化时,Vue会重新......
  • Vue插槽与作用域插槽
    title:Vue插槽与作用域插槽date:2024/6/1下午9:07:52updated:2024/6/1下午9:07:52categories:前端开发tags:VueSlotScopeSlot组件通信Vue2/3插槽作用域API动态插槽插槽优化第1章:插槽的概念与原理插槽的定义在Vue.js中,插槽(Slots)是一种强大的功能,它允许你......
  • Bean 作用域和生命周期
    Bean的作用域    先通过下述代码来感受下Bean的作用域有一个User类:packagecom.java.demo.entity;importlombok.Getter;importlombok.Setter;importlombok.ToString;@Getter//通过这个注解,lombok会自动生成get方法@Setter//通过这个注解,lombo......