zoukankan      html  css  js  c++  java
  • Vue生命周期代码示例

    一,页面准备

    1,创建页面

    <div id="app">
        <input type="button" value="修改msg" @click="msg='No'">
        <h3 id="h3">{{msg}}</h3>
    </div>

    2,创建Vue实例对象

    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                msg: 'ok'
            },
            methods: {
                show(){
                    console.log('show')
                }
            }
        })
    </script>

    二,创建阶段的生命周期函数

    1,beforeCreate

    表示实例完全被创建出来之前会执行它

    在beforeCreate生命周期函数执行的时候 data和methods中的方法都未被初始化

    beforeCreate(){
                console.log(this.msg)
                this.show()
            }

    运行结果:

     2,created

    在created中data和methods都已经被初始化好了

    如果要调用methods中的方法 或者操作data中的数据 最早只能在created中操作

    created(){
                console.log(this.msg)
                this.show()
            }

    运行结果:

     3,beforeMount

    把div中的内容编译模板 模板还在内存中 还未放到页面中去
    在beforeMount执行的时候 页面上的元素还没有被真正替换过来 只是之前写的一些模板字符串
    beforeMount(){
                console.log(document.getElementById('h3').innerText);
            }

    运行结果:

    4,mounted

    表示内存中模板已经真实的挂载到页面中 用户已经可以看到渲染好的页面了

    注意:mounted是实例创建期间最后一个生命周期函数

    当执行完mounted就表示实例已经被完全创建好了 此时 如果没有其他操作的话 这个实例就在内存中

    mounted(){
                console.log(document.getElementById('h3').innerText);
            }

    运行结果:

    三,运行中的生命周期函数

    1,beforeUpdate

    beforeUpdate(){
                console.log('界面上元素的内容' + document.getElementById('h3').innerText);
                console.log('data中的msg数据是' + this.msg)
            }

    点击修改按钮,这时候 表示我们的界面还没有被更新,数据此刻已经更新了

    得出结论:当执行beforeudate 页面上的数据是旧的 数据是最新的 页面尚未和最新的数据保持同步

    2,updated

    updated事件执行的时候 页面和data数据已经保持同步了 都是最新的

    updated(){
                console.log('界面上元素的内容' + document.getElementById('h3').innerText);
                console.log('data中的msg数据是' + this.msg)
            }

    运行结果:点击修改按钮

    四,代码结构

    生命周期函数和methods data同级

  • 相关阅读:
    Camera HAL3学习
    Android GPU呈现模式分析
    Android O版本自定义日志输出目录
    Android Configstore HAL
    Ubuntu下设置adb path的方法
    Ubuntu使用技巧
    PHP学习笔记
    mysql安装
    在ubuntu中安装Python
    OS X在使用<semaphore.h>时报错
  • 原文地址:https://www.cnblogs.com/ella-li/p/14641367.html
Copyright © 2011-2022 走看看