• 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同级

  • 相关阅读:
    关于返回上一页功能
    Mybatis Update statement Date null
    SQLite reset password
    Bootstrap Validator使用特性,动态(Dynamic)添加的input的验证问题
    Eclipse使用Maven2的一次环境清理记录
    Server Tomcat v7.0 Server at localhost failed to start
    PowerShell一例
    Server Tomcat v7.0 Server at libra failed to start
    商标注册英语
    A glance for agile method
  • 原文地址:https://www.cnblogs.com/ella-li/p/14641367.html
Copyright © 2020-2023  润新知