Vue的生命周期分为8个阶段,分别是:
beforeCreate:实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。
created:实例已经创建完成后被调用,这时候实例已完成以下的配置:数据观测 (data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前尚不可见。
beforeMount:在挂载开始之前被调用:相关的 render 函数首次被调用。
mounted:el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。
beforeUpdate:数据更新时调用,发生在虚拟 DOM 打补丁之前。
updated:由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。
beforeDestroy:实例销毁之前调用。在这一步,实例仍然完全可用。
destroyed:Vue 实例销毁后调用。
这些生命周期的作用是帮助我们在不同阶段执行相应的操作,比如在创建实例的时候做一些初始化操作,或者在数据更新后进行一些清理工作等。
在实际情况下,可以使用生命周期函数来进行数据的初始化、监听、取消监听、定时器的开启和关闭、资源的释放等操作。
以下是一个简单的示例代码:
- html>
- <html>
- <head>
- <title>Vue Lifecycle Exampletitle>
- <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js">script>
- head>
- <body>
- <div id="app">
- <p>{{ message }}p>
- div>
-
- <script>
- var app = new Vue({
- el: '#app',
- data: {
- message: 'Hello, Vue!'
- },
- beforeCreate() {
- console.log('Before create');
- },
- created() {
- console.log('Created');
- },
- beforeMount() {
- console.log('Before mount');
- },
- mounted() {
- console.log('Mounted');
- },
- beforeUpdate() {
- console.log('Before update');
- },
- updated() {
- console.log('Updated');
- },
- beforeDestroy() {
- console.log('Before destroy');
- },
- destroyed() {
- console.log('Destroyed');
- }
- });
- script>
- body>
- html>