vue3-生命周期钩子函数

在 Vue 3 中,**生命周期函数**是指在组件的不同阶段自动执行的一些特殊函数。这些函数就像组件的"生老病死"的各个阶段,你可以在不同阶段执行不同的操作。

生命周期的主要阶段:

1. **创建阶段**(组件还没有出现在页面上)

  • `setup()`:在组件实例创建之前调用,适合初始化数据。

  • `onBeforeMount()`:在组件挂载到 DOM 之前调用。

2. **挂载阶段**(组件已经被显示在页面上)

  • `onMounted()`:在组件挂载到 DOM 后调用,通常用来操作 DOM 或发起网络请求。

3. **更新阶段**(数据变化后)

  • `onBeforeUpdate()`:在响应式数据更新前调用。

  • `onUpdated()`:在响应式数据更新并渲染完成后调用。

4. **销毁阶段**(组件从页面上移除)

  • `onBeforeUnmount()`:组件被卸载前调用。

  • `onUnmounted()`:组件被完全卸载后调用。

如何使用生命周期函数?

在 Vue 3 中使用 **Composition API**,你可以在 `setup` 里引入这些函数:

javascript

javascript 复制代码
import { ref, onMounted, onUnmounted } from 'vue';

export default {
  setup() {
    const count = ref(0);

    onMounted(() => {
      console.log('组件已经挂载到页面上了!');
    });

    onUnmounted(() => {
      console.log('组件即将被移除!');
    });

    return { count };
  }
};

总结:

生命周期函数让你在不同的组件阶段执行特定的代码,比如初始化数据、监听事件、操作 DOM 或清理资源。

代码解析:

javascript 复制代码
const app = Vue.createApp({
  data() {
    return {
      posts: [], // 定义响应式数据 posts,初始值为空数组
    };
  },
  methods: {
    async fetchPosts() {
      // 定义一个异步方法,用于获取数据
      const res = await fetch("./posts.json"); 
      // 使用 fetch 获取本地 JSON 文件,返回一个 Promise
      const postsData = await res.json();
      // 解析返回的 JSON 数据,并赋值给变量 postsData
      this.posts = postsData;
      // 将获取到的数据赋值给 Vue 的响应式属性 posts
    },
  },
  created() {
    // 生命周期函数:组件实例被创建后立即执行
    this.fetchPosts(); 
    // 调用 fetchPosts 方法,开始获取数据
  },
});

const vm = app.mount("#app");
// 将 Vue 应用实例挂载到 HTML 中 id 为 "app" 的 DOM 元素上
相关推荐
一只小阿乐4 小时前
react 封装弹框组件 传递数据
前端·javascript·react.js
533_4 小时前
[element-plus] el-tree 动态增加节点,删除节点
前端·javascript·vue.js
禁止摆烂_才浅4 小时前
前端开发小技巧-【JavaScript】- 获取元素距离 document 顶部的距离
前端·javascript·react.js
wshzd4 小时前
LLM之Agent(二十九)|LangChain 1.0核心组件介绍
前端·javascript·langchain
程序猿_极客4 小时前
Vue 2脚手架从入门到实战核心知识点全解析(day6):从工程结构到高级通信(附代码讲解)
前端·javascript·vue.js·vue2学习笔记
q***71854 小时前
海康威视摄像头ISUP(原EHOME协议) 摄像头实时预览springboot 版本java实现,并可以在浏览器vue前端播放(附带源码)
java·前端·spring boot
一只小阿乐4 小时前
vue3 使用v-model开发弹窗组件
javascript·vue.js·elementui
web加加4 小时前
vue3 +vite项目页面防f12,防打开控制台
前端·javascript·vue.js
A尘埃5 小时前
大模型应用python+Java后端+Vue前端的整合
java·前端·python
遥遥晚风点点6 小时前
Spark导出数据文件到HDFS
前端·javascript·ajax