vue 清空对象_Vue.js生命周期

a4261bda2b4cff24b799404a4a523d11.png
什么是生命周期? Vue每个组件都是独立的,每个组件都有一个属于它的生命周期,从一个组件创建、数据初始化、挂载、更新、销毁,这就是一个组件所谓的生命周期。

有四个阶段, 分别为创建阶段, 挂载阶段, 数据更新阶段, 销毁阶段, 下面就来详细介绍这几个阶段.

1. 创建阶段

该阶段主要有两个钩子---创建前(beforeCreate)和创建后(created)

1.1 beforeCreate

  • vue实例的挂载元素 $el(Vue实例关联的DOM元素) 和数据对象data都为undefined,还未初始化

1.2 created

  • vue实例的数据对象data有了,$el还没有
  • 在通常在此进行页面初始化操作或简单的Ajax请求(此时页面还未呈现,过多的请求会导致白屏)

2. 挂载阶段

2.1 beforeMount

  • 触发时机: 在挂载开始之前被调用
  • vue实例的$el和data都初始化了, 相关的 render 函数首次被调用, 生成虚拟DOM节点? 什么是虚拟DOM节点? 这个有被问到, 需要了解下, 可以参考下这篇文章:

浅谈Vue中的虚拟DOM

  • 这个钩子比较少用

2.2 mounted

  • 实例被挂载到DOM上, 这个时候真实的DOM已经被渲染, 通常用于执行Ajax请求以及进行DOM相关的操作.

3. 数据更新阶段

3.1 beforeUpdate

  • 触发阶段: 只有数据更新时才调用,发生在虚拟 DOM 打补丁之前。适合在更新之前访问现有的 DOM,比如手动移除已添加的事件监听器。 注意: 这个钩子的触发时机又被问过, 要知道 这里举一个例子可能更好理解:
var app = new Vue({
    el: '#app',
    data: {
        name: 'Zeke'
    },
    mounted(){
        this.name = 'Zeke Yang'
    },
    beforeUpdate(){
        console.log(this.$el.innerHTML) // <div class="test">Zeke</div>
        console.log(this.$el) // <div id=​"app">​<div class=​"test">​Zeke Yang<div>​</div>​
        console.log(this.name) // Zeke Yang
    }
})

3.2 updated

  • 虚拟 DOM 重新渲染和打补丁之后调用,组件DOM已经更新,可以执行依赖于DOM的操作
updated(){
    console.log(this.$el.innerHTML) // <div class="test">Zeke Yang</div>
    console.log(this.$el) // <div id=​"app">​<div class=​"test">​ZeYang</div>​</div>​
    console.log(this.name) // Zeke Yang
}

4. 销毁阶段阶段

4.0 什么时候触发销毁(又被问过, 要知道)

  • 手动调用vm.$destroy()方法
  • 移除组件
  • 路由切换

4.1 beforeDestroy

  • 实例被销毁前调用,此时实例仍可访问
  • 组件销毁时触发,this仍能获取到实例, 这个钩子函数一般做事件的移除、清空定时器

4.2 destroyed

  • Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。视图并不会刷新,,但DOM节点依旧存在.

Vue的钩子函数[路由导航守卫、keep-alive、生命周期钩子]

vue生命周期钩子函数详解

详解Vue生命周期【上】

【干货】详解vue生命周期

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值