美文网首页
vue生命周期

vue生命周期

作者: 3e2235c61b99 | 来源:发表于2020-12-15 15:10 被阅读0次

vue生命周期除了下图中的beforeCreate, created, beforeMount, mounted, beforeUpdate, updated, beforeDestroy, destroyed8个,还有和keep-alive相关的两个生命周期activated, deactivated,和一个捕获子孙组件错误的生命周期errorCaptured
activated 被 keep-alive 缓存的组件激活时调用。
deactivated 被 keep-alive 缓存的组件停用时调用。
errorCaptured 当捕获一个来自子孙组件的错误时被调用。此钩子会收到三个参数:错误对象、发生错误的组件实例以及一个包含错误来源信息的字符串。此钩子可以返回 false 以阻止该错误继续向上传播。

<template>
    <div>
        <div>生命周期</div>
        <child></child>
    </div>
</template>

<script>
    import child from "../assembly-test/child";
    export default {
        name: "index",
        data() {
            return {
                msg: "生命周期"
            }
        },

        components: {
            child
        },

        beforeCreate() {
            console.log("beforeCreate")
        },

        created() {
            console.log("created")
        },

        beforeMount() {
            console.log("beforeMount")
        },

        mounted() {
            console.log("mounted")
        },

        beforeUpdate() {
            console.log("beforeUpdate")
        },

        updated() {
            console.log("updated")
        },

        activated() {
            console.log("activated")
        },

        deactivated() {
            console.log("deactivated")
        },

        beforeDestroy() {
            console.log("beforeDestroy")
        },

        destroyed() {
            console.log("destroyed")
        },

        errorCaptured(err, vm, info) {
            console.log("errorCaptured")
            return false
        },
    }
</script>
1-1.页面无缓存

当前页面没有被keep-alive缓存,且未引入子组件时,进入当前页面控制台输出

beforeCreate
created
beforeMount
mounted

离开当前页面控制台输出:

beforeDestroy
destroyed
1-2,页面被缓存

当前页面被keep-alive缓存,且未引入子组件时,进入当前页面控制台输出

beforeCreate
created
beforeMount
mounted
activated

离开当前页面控制台输出:

deactivated
beforeDestroy
destroyed

相比无缓存时,多执行了两个生命周期钩子,进入页面时执行activated,离开页面时执行deactivated

2.页面更新

当前页面引入子组件时,进入当前页面控制台输出

beforeCreate
created
beforeMount
mounted
activated
beforeUpdate
updated
3.子组件报错

当前页面引入的子组件报错时,控制它输出

beforeCreate
created
beforeMount
errorCaptured
mounted
activated
beforeUpdate
updated

当在初始加载时子组件就报错,会在mounted之前执行errorCaptured生命周期钩子
如果感觉错误无关紧要或者不想把错误传递到外层,可以在errorCapturedreturn false阻止错误继续向上传播

lifecycle.png

相关文章

  • vue生命周期

    一 vue生命周期 Vue的生命周期:就是vue实例从创建到销毁的全过程 二 vue生命周期钩子 vue生命周期...

  • vue生命周期

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

  • Vue生命周期

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

  • vue3较vue2的特别之处 - 生命周期

    vue2 生命周期 vue3 生命周期 将 Vue2 的生命周期钩子代码更新到 Vue3 参考地址:https:/...

  • 前端之路-VUE面试题

    vue生命周期面试题vue 生命周期是什么? Vue 实例从创建到销毁的过程,就是生命周期 beforeCreat...

  • Vue.js入门(二):生命周期

    1 生命周期 Vue生命周期是Vue实例从创建到销毁的过程,就是生命周期。在Vue实例的生命周期过程中会运行生命周...

  • vue生命周期

    vue里的生命周期是什么? vue实例从创建到销毁的过程称之为vue的生命周期 vue的生命周期各阶段都做了什么?...

  • Vue 生命周期

    vue里的生命周期是什么? vue实例从创建到销毁的过程称之为vue的生命周期 vue的生命周期各阶段都做了什么?...

  • vue学习记录

    vue全家桶 vue生命周期 生命周期的理解 新建项目 ①:cnpm install vue-cli -g (全...

  • Vue生命周期

    Vue生命周期 1、什么是vue生命周期? 答: Vue 实例从创建到销毁的过程,就是生命周期。也就是从开始创建、...

网友评论

      本文标题:vue生命周期

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