Vue实例的生命周期

7 篇文章 0 订阅
7 篇文章 0 订阅

Vue实例的生命周期

生命周期钩子:生命周期函数:生命周期事件

创建期间的生命周期函数

  • beforeCreate() : 第一个生命周期函数
    • 但Vue实例并被未完全创建出来
    • 第一个生命周期函数,此时已创建了最基本的Vue实例
    • 执行此函数时 datamethods 都未被初始化
  • created() : 第二个生命周期函数
    • 执行此函数时 datamethods 都已被初始化
    • 此函数之后执行Vue实例的模板编译
    • 编译模板时执行指令
    • 模板编译最终在内存中生成模板字符串
  • beforeMount() : 第三个生命周期函数
    • 此时模板编译好,尚未将模板字符串渲染到页面上
    • 执行此函数时页面元素未被替换
    • 此函数之后将内存中编译好的模板渲染到页面上
  • mounted() : 第四个生命周期函数
    • 内存中的模板已挂载到页面上,可以在浏览器看到渲染好的页面
    • 实例创建的最后一个生命周期函数

运行期间的生命周期函数

根据Vue中的data数据发生改变时触发运行期间的生命周期函数
最少可以从不执行

  • beforeUpdate() : 运行期间第一个生命周期函数
    • 此时页面没有更新,当数据已经更新了,但并未渲染到页面
  • updated() : 此时页面与data已经同步

销毁期间的生命周期函数

  • beforeDestroy : 实例中的datamethods、过滤器、指令等都处于可用状态
    • 并未执行销毁
  • destroy : 表示组件已被销毁,实例中的datamethods、过滤器、指令等都不可用
    示例如下:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/javascript" src="./vue.js"></script>
    <link rel="stylesheet" href="./bootstrap.css">
</head>
<body>
    <div id="app">
        <input type="button" value="更改" @click="msg='OK'">
        <h1>----{{ msg }}----</h1>
    </div>
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                msg:'Hello World!!!'
            },
            methods: {
                show(){
                    console.log('running show()')
                }
            },
            beforeCreate(){
                
            },
            created(){
                console.log(this.msg)
                this.show()
            },
            beforeMount(){
                console.log(document.getElementsByTagName('h1')[0].innerHTML)
            },
            mounted(){
                console.log(document.getElementsByTagName('h1')[0].innerHTML)
            },
            beforeUpdate(){
                console.log(document.getElementsByTagName('h1')[0].innerHTML)
            },
            updated(){
                console.log(document.getElementsByTagName('h1')[0].innerHTML)
            }
        });
    </script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值