Vue day5

组件的生命周期
一个组件从开始注册到销毁的整个过程
每个过程:vue提供了不同的钩子函数(在不同过程自动触发的函数),
生命周期图示

组件生命周期的过程

  • 实例挂载
    beforeCreate(在实例的事件和钩子函数初始化后触发,不常用,因为这个时候还没有数据和方法)
    creatd(在实例及其原型的属性和方法全部初始化完毕,及其dota数据变成响应式后触发,常用,因为其已经可以调用实例的属性和方法,除了不可以获取dom操作,初始化操作都可以在这里执行,页面初始数据的ajax请求函数应该放在这里执行)
    beforemount(在模板渲染成真实dom完毕之前触发,不常用)
    mounted(在真实dom加载完之后触发,一切组件都已经初始化,在这里可以获取dom,所有需要获取dom操作都可以在这里执行,比如swiper,地图,echarts,富文本)

  • 数据更新
    beforUpdate(数据改变 视图重新渲染之前)
    updated(数据改变之后,视图重新渲染之后,这里可以获取到最新的dom)

  • 组件销毁
    beforeDestroy(实例销毁之前,常用,因为此时还能调用实例的数据和方法,销毁组件中的定时器,全局事件绑定这种) //组件销毁只是销毁实例,其他定义在Window的并未销毁,比如定时器滚动距离这种,所有要在这个钩子函数销毁这些东西
    destroyed(实例已经销毁了,不常用)

组件修仙(组件在消失时不会销毁,而是一直缓存在内存中)
vue中提供了一个组件
keep-alive
不要滥用,否则会造成内存泄漏

<keep-alive>
        <common v-if="isshow"></common>
      </keep-alive>

其状态切换也有两个钩子函数:

activated() {
         console.log("keep-alive激活时触发");
       },
       deactivated() {
         console.log("keep-alive停用时触发");
       },
posted @ 2020-12-15 01:12  hw558  阅读(82)  评论(0)    收藏  举报