22vue生命周期

vue生命周期

一、引出生命周期

总结

生命周期:
    1.又名:生命周期回调函数、生命周期函数、生命周期钩子。
    2.是什么:Vue在关键时刻帮我们调用的一些特殊名称的函数。
    3.生命周期函数的名字不可更改,但函数的具体内容是程序员根据需求编写的。
    4.生命周期函数中的this指向是vm或组件实例对象。
人的一生(人的生命周期)︰
    呱呱坠地了 ===> 检查身体各项指标。
    学会说话了
    学会走路了

vm的一生(vm的生命周期)∶
	????了	 ===> 调用????豳数。
	挂载完毕了 ===> 调用mounted函数。
	????了	 ===> 调用????豳数。

实例

<div id="root">
    <h3 v-if="flags">你好</h3>
    <h3 :style="{opacity: opacity}">欢迎学习vue</h3>
</div>
<script>
    Vue.config.productionTip = false;
    const vm = new Vue({
        el:'#root',
        data:{
            flags:false,
            opacity:1,
        },

        //Vue完成模板的解析并把初始的(第一次)真实DOM元素放入页面后(挂载完毕)调用mounted
        mounted(){
            console.log(this)
            setInterval(() => {
                this.opacity -= 0.01;
                if (this.opacity <= 0) this.opacity = 1;
            }, 16);
        }
    });
    
    // 不推荐
    // setInterval(() => {
    //     vm.opacity -= 0.01;
    //     if(vm.opacity <= 0) vm.opacity = 1;
    // }, 16);
</script>

生命周期流程

常用的生命周期钩子:
    1.mounted:发送ajax请求、启动定时器、绑定自定义事件、订阅消息等【初始化操作】.
    2.beforeDestroy:清除定时器、解绑自定义事件、取消订阅消息等【收尾工作】。
    
关于销毁Vue实例
    1.销毁后借助Vue开发者工具看不到任何信息。
    2.销毁后自定义事件会失效,但原生DOM事件依然有效。
    3.一般不会再beforeDestroy操作数据,因为即便操作数据,也不会再触发更新流程了。

生命周期

beforeUpdate:数据已经更新,但是页面还未来得及更新。(数据新,页面旧)

beforeDestory && destroy: 可以获取到数据,可以执行数据更改,但是不会触发更新操作;(命令执行,页面已经不被vue接管)

image-20220902215608472

生命流程钩子

  • 创建

    • beforeCreate
    • created
      • (完成) 数据监视&&数据代理
  • 挂载

    • beforeMount

    • mounted

      • Vnode-->Rnode

      • 开始时操作, 发送 ajax 请求, 启动定时器等异步

  • 更新

    • beforeUpdate
      • 数据更新,页面来不及更新
    • updated
  • 销毁

    • beforeDestory
      • 可获取可修改数据,但不被vue更新页面
      • 结束时操作,做收尾工作, 如: 清除定时器
    • destory

image-20220902222945032

posted @ 2022-09-06 16:32  Redskaber  阅读(68)  评论(0)    收藏  举报