uniapp components 生命周期
时间: 2023-08-11 09:04:52 浏览: 117
UniApp 中的组件生命周期包括以下几个阶段:
1. **beforeCreate**: 在组件实例被创建之前调用,此时组件的数据和方法都还未初始化。
2. **created**: 在组件实例被创建后调用,此时组件的数据已经初始化完成,但尚未渲染到页面上。
3. **beforeMount**: 在组件被挂载到页面之前调用,此时组件的模板已经编译完成,但尚未被渲染。
4. **mounted**: 在组件被挂载到页面后调用,此时组件已经渲染到页面上,可以进行 DOM 操作。
5. **beforeUpdate**: 在组件数据更新之前调用,此时组件的数据已经发生变化,但尚未更新到页面上。
6. **updated**: 在组件数据更新之后调用,此时组件的数据已经更新到页面上,可以进行 DOM 操作。
7. **beforeDestroy**: 在组件销毁之前调用,此时组件仍然可用,可以执行一些清理操作。
8. **destroyed**: 在组件销毁之后调用,此时组件已经被销毁,无法再使用。
除了以上常见的生命周期钩子外,UniApp 还提供了一些特定平台的生命周期钩子,如小程序平台的 `onLoad`、`onShow`、`onHide` 等。
你可以在组件的 `<script>` 部分定义这些生命周期钩子来监听组件的不同生命周期阶段,执行相应的逻辑。
以下是一个示例代码,展示了组件的生命周期钩子的定义方式:
```vue
<script>
export default {
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');
}
};
</script>
```
在上述示例中,我们在组件的 `<script>` 部分定义了各个生命周期钩子,并在每个钩子中输出了相应的信息。
当组件被创建、挂载、更新或销毁时,这些生命周期钩子将会被依次调用。
希望对你有所帮助!如果还有其他问题,请随时提问。
阅读全文