Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

vue组件生命周期

作者:刃起风啸凌   发布日期:2025-09-13   浏览:24

// Vue 组件生命周期示例代码

<template>
  <div>
    <p>{{ message }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: 'Hello Vue!'
    };
  },
  beforeCreate() {
    console.log('beforeCreate: 组件实例刚刚被创建,数据观测 (data observer) 和 event/watcher 事件配置尚未初始化');
  },
  created() {
    console.log('created: 完成数据观测 (data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见');
  },
  beforeMount() {
    console.log('beforeMount: 在挂载开始之前被调用:相关的 render 函数首次被调用');
  },
  mounted() {
    console.log('mounted: el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。如果 root 实例挂载了一个文档内元素,当 mounted 被调用时 vm.$el 也在文档内');
  },
  beforeUpdate() {
    console.log('beforeUpdate: 数据更新时调用,发生在虚拟 DOM 打补丁之前。这里适合在更新之前访问现有的 DOM,比如手动移除已添加的事件监听器');
  },
  updated() {
    console.log('updated: 由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。当这个钩子被调用时,组件 DOM 已经更新,可以执行依赖于 DOM 的操作');
  },
  beforeDestroy() {
    console.log('beforeDestroy: 实例销毁之前调用。在这一步,实例仍然完全可用');
  },
  destroyed() {
    console.log('destroyed: Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁');
  }
};
</script>

<style scoped>
/* 样式部分可以根据需要添加 */
</style>

解释说明:

  1. beforeCreate:组件实例刚被创建,datamethods 尚未初始化。
  2. createddatamethods 已经初始化,但还没有挂载到 DOM 上。
  3. beforeMount:即将挂载到 DOM 上,render 函数第一次被调用。
  4. mounted:已经挂载到 DOM 上,此时可以操作 DOM 元素。
  5. beforeUpdate:数据更新前,适合在更新前进行一些操作(如移除事件监听器)。
  6. updated:数据更新后,DOM 已经更新,可以进行 DOM 操作。
  7. beforeDestroy:组件即将被销毁,组件依然可用。
  8. destroyed:组件已经被销毁,所有资源都被清理。

这些生命周期钩子可以帮助你在不同的阶段对组件进行控制和操作。

上一篇:vue3 router.push

下一篇:vue aes加密

大家都在看

vue js for循环

vue.config.js 配置

vue.config.js configu

node.js vue

vue3组件传值的方式

vue 图表组件

vue3+vite+ts

vue3watch监听多个变量

vue查看版本

vue3 reactive对象重新赋值

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站