美文网首页
vue 之 生命周期详解

vue 之 生命周期详解

作者: hunter97 | 来源:发表于2019-03-04 22:34 被阅读0次

做vue相关的项目有一段时间了,对vue的使用比较熟练,但是一些基础的概念点还是比较模糊,在这里总结一下,与大家共享,也为了之后在这方面更好的发展。下面首先是官方提供的关于vue生命周期的一张概念图: vue生命周期

由图可见:

生命周期名称 函数 定义
创建前 beforeCreate 组件实例刚刚建立,组件属性计算之前
创建后 created 组件实例已经建立,组件属性已经计算
编译/挂载前 beforeMount 已经渲染出虚拟dom节点,如<i>{{msg}}</i>
编译/挂在后 mounted 已经渲染出实际dom节点
更新前 beforeUpdate 渲染出更新数据后的虚拟dom节点
更新后 updated 渲染出更新数据后的实际dom节点
销毁前 beforeDestroy 组件实例依然存在,可以使用
销毁后 destoryed 组件实例被完全销毁

测试代码:

<template>
    <div class="test">
        <h1>{{ msg }}</h1>
    </div>
</template>
<script>
    export default {
        name: 'test',
        data() {
            return {
                msg: 'cuiht'
            }
        },
        // 创建前状态
        beforeCreate() {
            console.log("%c%s", "color:green", 'beforeCreate 创建前状态===============》');
            console.log("%c%s", "color:red", "el: ");
            console.log(this.$el);
            console.log("%c%s", "color:red", "data: ");
            console.log(this.$data);
            console.log("%c%s", "color:red", "msg: ");
            console.log(this.msg);
        },
        // 创建后状态
        created() {
            console.log("%c%s", "color:green", 'created 创建后状态===============》');
            console.log("%c%s", "color:red", "el: ");
            console.log(this.$el);
            console.log("%c%s", "color:red", "data: ");
            console.log(this.$data);
            console.log("%c%s", "color:red", "msg: ");
            console.log(this.msg);
        },
        // 挂载前状态
        beforeMount() {
            console.log("%c%s", "color:green", 'beforeMount 挂载前状态===============》');
            console.log("%c%s", "color:red", "el: ");
            console.log(this.$el);
            console.log("%c%s", "color:red", "data: ");
            console.log(this.$data);
            console.log("%c%s", "color:red", "msg: ");
            console.log(this.msg);
        },
        // 挂载后状态
        mounted() {
            console.log("%c%s", "color:green", 'mounted 挂载后状态===============》');
            console.log("%c%s", "color:red", "el: ");
            console.log(this.$el);
            console.log("%c%s", "color:red", "data: ");
            console.log(this.$data);
            console.log("%c%s", "color:red", "msg: ");
            console.log(this.msg);
            this.msg = 'update';
        },
        // 更新前状态
        beforeUpdate() {
            console.log("%c%s", "color:green", 'beforeUpdate 更新前状态===============》');
            console.log("%c%s", "color:red", "el: ");
            console.log(this.$el);
            console.log("%c%s", "color:red", "data: ");
            console.log(this.$data);
            console.log("%c%s", "color:red", "msg: ");
            console.log(this.msg);
        },
        // 更新后状态
        updated() {
            console.log("%c%s", "color:green", 'updated 更新后状态===============》');
            console.log("%c%s", "color:red", "el: ");
            console.log(this.$el);
            console.log("%c%s", "color:red", "data: ");
            console.log(this.$data);
            console.log("%c%s", "color:red", "msg: ");
            console.log(this.msg);
            this.$router.push('/index')
        },
        // 销毁前状态
        beforeDestroy() {
            console.log("%c%s", "color:green", 'beforeDestroy 销毁前状态===============》');
            console.log("%c%s", "color:red", "el: ");
            console.log(this.$el);
            console.log("%c%s", "color:red", "data: ");
            console.log(this.$data);
            console.log("%c%s", "color:red", "msg: ");
            console.log(this.msg);
        },
        // 销毁后状态
        destroyed() {
            console.log("%c%s", "color:green", 'destroyed 销毁后状态===============》');
            console.log("%c%s", "color:red", "el: ");
            console.log(this.$el);
            console.log("%c%s", "color:red", "data: ");
            console.log(this.$data);
            console.log("%c%s", "color:red", "msg: ");
            console.log(this.msg);
        }
    }
</script>
<style scoped></style>
生命周期测试示意图
由于测试项目原因,部分生命周期效果测试效果并不明显。

要有梦想,即使遥远。

相关文章

  • vue生命周期

    vue生命周期详: vue生命周期详解图: vue生命周期详解代码展示:

  • 入门

    Vue官方文档生命周期详解 vue-routervue-router官方文档vue-router详解

  • Vue生命周期

    Vue生命周期详解 一、Vue生命周期 与 作用 (生命周期钩子就是生命周期函数) (1)Vue生命周期:每个Vu...

  • 2.vue生命周期钩子

    vue2.0生命周期图文详解 什么是生命周期:

  • 学习链接

    vue-router教程总结 vue生命周期和钩子函数 详解vue生命周期 Vue2.0八——知识点整理 vuex...

  • vue 生命周期 详解

    详解Vue Lifecycle 先来看看vue官网对vue生命周期的介绍 Vue实例有一个完整的生命周期,也就是从...

  • Vue的生命周期和钩子函数

    Vue的生命周期 Vue示例被创建到销毁的过程 Vue的钩子函数详解

  • 2020-02-11

    vue生命周期详解 摘自:https://www.jianshu.com/p/672e967e201c Vue实例...

  • vue1.0和2.0的生命周期详解

    Vue#1.0和#2.0生命周期详解 1.0 生命周期image2.0 生命周期imageimage 两个版本对比...

  • Vue实例详解与生命周期

    Vue实例详解与生命周期 Vue的实例是Vue框架的入口,其实也就是前端的ViewModel,它包含了页面中的业务...

网友评论

      本文标题:vue 之 生命周期详解

      本文链接:https://www.haomeiwen.com/subject/eknduqtx.html