在 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 元素上