zoukankan      html  css  js  c++  java
  • Vue生命周期

    Vue生命周期

    参考vue生命周期
    Vue生命周期
    这是Vue文档里关于实例生命周期的解释图
    进行测试一下
    测试代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <script src="https://unpkg.com/vue/dist/vue.js"></script>
    </head>
    <body>
        <div id="app">
            {{data}}
        </div>
        <script>
            var app = new Vue({
                el: "#app",
                data: {
                    data: "这是测试",
                    info: "none"
                },
                beforeCreate() {
                    console.log("创建前=======");
                    console.log(this.data);
                    console.log(this.$el);
                    console.log("这是一条分割线==========");
                },
                created() {
                    console.log("已创建=========");
                    console.log(this.data);
                    console.log(this.$el);
                    console.log("这是一条分割线==========");
                },
                beforeMount() {
                    console.log("mount之前==========");
                    console.log(this.info);
                    console.log(this.$el);
                    console.log("这是一条分割线==========");
                },
                mounted() {
                    console.log("mounted======");
                    console.log(this.info);
                    console.log(this.$el);
                    console.log("这是一条分割线==========");
                },
                beforeUpdate() {
                    console.log("更新前=========");
                    console.log("这是一条分割线==========");
                },
                updated() {
                    console.log("更新完成=======");
                    console.log("这是一条分割线==========");
                },
                beforeDestroy() {
                    console.log("销毁前========");
                    console.log(this.info);
                    console.log(this.$el);
                    console.log("这是一条分割线==========");
                },
                destroyed() {
                    console.log("已销毁=========");
                    console.log(this.info);
                    console.log(this.$el);
                    console.log("这是一条分割线==========");
                },
            })
        </script>
    </body>
    </html>
    

    结果图:
    结果图
    由图可知:

    1. beforeCreate此时$el,data的值都为undefined
    2. 创建之后,此时可以拿到data的值,但是$el依旧为undefined
    3. mount之前,$el的值为"虚拟"的元素节点
    4. mount之后,mounted之前,"虚拟"的dom节点被真是的dom节点替换,并将其插入到dom树中,于是在出发mounted时,可以获取到(el为真实的dom元素 app.)el === document.getElementById("app")//true

    继续,现在修改data的值,更新视图:
    更新后
    触发了beforeUpdate和updated
    接着,继续执行销毁app.$destroy()
    销毁后
    总结一下,简化后的图为:
    简化生命周期图

  • 相关阅读:
    VB6:从Comctl.dll中加载TREEVIEW并美化OCX版本(修正)
    一个围猫的小游戏
    从RES文件中直接加载JPG的函数
    Vistaform Control v1.40正式发布(下载)
    比CopyMemory还要快的函数SuperCopyMemory
    VB开发日志:做按钮时顺便做的颜色调整工具
    魔兽按键精灵 V2.0(修正1)
    魔兽按键精灵准备开发3.0版本
    VB高级编程之:完全子类化模仿OFFICE2007按钮
    VB:我的进度条Diy
  • 原文地址:https://www.cnblogs.com/zzr-stdio/p/9461444.html
Copyright © 2011-2022 走看看