浅析Vue中生命周期函数的区别

 更新时间:2023年08月09日 10:52:27   作者:爱敲代码的小林  
生命周期分为四个对子,根据不同的情况使用不同的函数,这篇文章主要为大家介绍了这些函数的使用与区别,感兴趣的小伙伴可以了解一下

生命周期图

 上图生命周期每个红色的钩子是一个阶段,可以在每个不同的阶段写合适的代码。

生命周期函数

生命周期分为四个对子,根据不同的情况使用不同的函数

其中beforeUpdate、updated能执行多次

beforeCreate、created创建前、创建后
beforeMount、mounted挂载前、挂载后
beforeUpdate、updated更新前、更新后
beforeDestroy、destroyed销毁前、销毁后

下面的四种应用场景用的统一HTML代码

<div id="app">
    {{myName}}
</div>

beforeCreate和created的区别

创建前、创建后

beforeCreate创建前应用场景

vue代码:

var app = new Vue({
        el: '#app',
        data() {
            return {
                myName:'abc',
            }
        },
        beforeCreate(){
            //获取body并输出测试
            var bodyDom=document.getElementsByTagName("body")[0].innerHTML;
            console.log("created",this.myName,bodyDom);
        }
    });

浏览器输出结果:

beforeCreate中data的数据是没有被定义的,created后面是undefined并且{{myName}}还未被识别

created创建后应用场景

vue代码:

var app = new Vue({
    el: '#app',
    data() {
        return {
            myName:'abc',
        }
    },
    created(){
        //获取body并输出测试
        var bodyDom=document.getElementsByTagName("body")[0].innerHTML;
        console.log("created",this.myName,bodyDom);
    }
});

浏览器输出结果:

created主要做一些页面的数据的数据初始化工作,获取到了myName的值,但是后台显示的还是{{myName}}值还未被填上去

beforeMount和mounted的区别

挂载前、挂载后

 beforeMount挂载前应用场景

vue代码:

var app = new Vue({
    el: '#app',
    data() {
        return {
            myName:'abc',
        }
    },
    beforeMount(){
            //获取body并输出测试
            var bodyDom=document.getElementsByTagName("body")[0].innerHTML;
            console.log("beforeMount",this.myName,bodyDom);
        },
    }
});

浏览器输出结果:

输出结果和created创建后一样,是在创建后挂载前,自我感觉没啥大用

mounted挂载后应用场景

vue代码:

var app = new Vue({
    el: '#app',
    data() {
        return {
            myName:'abc',
        }
    },
    mounted(){
            //获取body并输出测试
            var bodyDom=document.getElementsByTagName("body")[0].innerHTML;
            console.log("beforeMount",this.myName,bodyDom);
        },
    }
});

浏览器输出结果:

数据已经渲染到View中

beforeUpdate和updated的区别

更新前、更新后;和其他三个不同可被重复执行

beforeUpdate更新前应用场景

vue代码:

var app = new Vue({
    el: '#app',
    data() {
        return {
            myName:'abc',
        }
    },
    beforeUpdate(){
            //获取body并输出测试
            var bodyDom=document.getElementsByTagName("body")[0].innerHTML;
            console.log("beforeMount",this.myName,bodyDom);
        },
    }
});

浏览器输出结果:

数据更新前,数据未改变

updated更新后应用场景

vue代码:

var app = new Vue({
    el: '#app',
    data() {
        return {
            myName:'abc',
        }
    },
    updated(){
            //获取body并输出测试
            var bodyDom=document.getElementsByTagName("body")[0].innerHTML;
            console.log("beforeMount",this.myName,bodyDom);
        },
    }
});

浏览器输出结果:

数据更新后,数据已改变

beforeDestroy和destroyed的区别

销毁前、销毁后

beforeDestroy销毁前

一般应用到的场景:

  • 清除定时器
  • 解绑自定义事件
  • 取消订阅、事件监听

没有具体代码演示

destroyed销毁后

此钩子函数会在组件实例销毁之后执行,此时所有的组件包括子组件都被销毁了。

也没有具体代码演示

总结

几个生命周期函数各有各的特点,根据不同的业务,使用不同的生命周期函数来解决问题。

到此这篇关于浅析Vue中生命周期函数的区别的文章就介绍到这了,更多相关Vue生命周期函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一文详解Pinia和Vuex与两个Vue状态管理模式

    一文详解Pinia和Vuex与两个Vue状态管理模式

    这篇文章主要介绍了一文详解Pinia和Vuex与两个Vue状态管理模式,Pinia和Vuex一样都是是vue的全局状态管理器。其实Pinia就是Vuex5,只不过为了尊重原作者的贡献就沿用了这个看起来很甜的名字Pinia
    2022-08-08
  • vue中 render 函数功能与原理分析

    vue中 render 函数功能与原理分析

    这篇文章主要介绍了vue中 render 函数功能与原理,结合实例形式分析了vue中render函数的基本功能、原理及相关操作注意事项,需要的朋友可以参考下
    2023-06-06
  • vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造

    vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造

    这篇文章主要介绍了vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造,home.vue 组件有了两个属性:navs 和 tts 属性,具体实例代码大家跟随小编一起通过本文学习吧
    2018-09-09
  • vue-router3.0版本中 router.push 不能刷新页面的问题

    vue-router3.0版本中 router.push 不能刷新页面的问题

    这篇文章主要介绍了vue-router3.0版本中 router.push 不能刷新页面的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • Vue选项之propsData传递数据方式

    Vue选项之propsData传递数据方式

    这篇文章主要介绍了Vue选项之propsData传递数据方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • vue数据操作之点击事件实现num加减功能示例

    vue数据操作之点击事件实现num加减功能示例

    这篇文章主要介绍了vue数据操作之点击事件实现num加减功能,结合实例形式分析了vue.js事件响应及数值运算相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • vue去除数组指定位置元素的几种方法

    vue去除数组指定位置元素的几种方法

    这篇文章主要介绍了vue剔除数组指定位置元素的几种方法,文中主要介绍了单个去除和批量去除这两种方法,并通过代码示例讲解的非常详细,需要的朋友可以参考下
    2024-03-03
  • vue 使某个组件不被 keep-alive 缓存的方法

    vue 使某个组件不被 keep-alive 缓存的方法

    今天小编就为大家分享一篇vue 使某个组件不被 keep-alive 缓存的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • Vue项目如何关闭语法检查

    Vue项目如何关闭语法检查

    这篇文章主要介绍了Vue项目如何关闭语法检查问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • vue2中如何使用swiper@5.4.5

    vue2中如何使用swiper@5.4.5

    这篇文章主要介绍了vue2中如何使用swiper@5.4.5问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12

最新评论