• 生命周期


    生命周期

    生命周期(template compilation is performed ahead-of time if using a build step,e.g. single-file components:如果使用构造生成文件,构造器将提前执行模板编译,例如单文件组件)

    • 初始化Events和Lifecycle(生命周期)
    • 1、beforeCreate(data未初始化,一般用来修改this.$options的值)
    • 初始化injections(注入)和reactivity(响应)
    • 2、created
    • 有el挂载,编译template为render函数。没有el,当挂载时才编译(挂载方法vm.$mount(el)
    • 3、beforeMount
    • 创造$el替换el(dom元素,应该是dom树,还没有到渲染阶段)
    • 4、mounted(挂载)
    • 5、响应改变beforeUpdate
    • render重新计算,patch(补丁)
    • 6、updated
    • vm.$destroy()被调用
    • 7、beforeDestroy
    • 卸载watchers、child components、event listeners
    • 8、destroyed

    ————————————————————————————————————————————————————————————

    选项 / 生命周期钩子

    beforeCreate

    • 会先触发父组件的钩子,然后才触发内部子组件的钩子

    created

    • 初始化是从父元素开始向子元素层层递进,且在一个分支会先走到分支的最后一个节点才走下一个分支

    beforeMount

    mounted

    • 刚好和created相反,从第一分支的最后一个节点开始,等所有子节点都挂载后,父节点才挂载

    beforeUpdate

    updated

    activated

    • 必须在单页面应用中跳转才能触发,如果在多页面间跳转,不管使用<a>还是使用router.push都无法触发
    • 激活,当组件通过<keep-alive>缓存后进行切换时触发
    • 先触发子组件的再触发父组件的

    deactivated

    • 必须在单页面应用中跳转才能触发,如果在多页面间跳转,不管使用<a>还是使用router.push都无法触发
    • 停用,当组件通过<keep-alive>缓存后进行切换时触发
    • 同激活。先触发子组件的再触发父组件的

    beforeDestroy

    • 必须在单页面应用中跳转才能触发,如果在多页面间跳转,不管使用<a>还是使用router.push都无法触发
    • 根、子组件都会被触发,先触发根组件的再触发子组件
    • 当组件被<keep-alive>缓存后不被触发
    • 通过 $once(eventName, eventHandler) 一次性侦听一个事件
    mounted: function () {
      var picker = new Pikaday({
        field: this.$refs.input,
        format: 'YYYY-MM-DD'
      })
    
      this.$once('hook:beforeDestroy', function () { // 通过动态的侦听事件,可以把创建对象和销毁对象的代码聚合在一个地方,方便维护。实际跟在beforeDestroy钩子下执行是一样效果(这里的事件名很特别)
        picker.destroy()
      })
    }
    

    destroyed

    • 必须在单页面应用中跳转才能触发,如果在多页面间跳转,不管使用<a>还是使用router.push都无法触发
    • 根、子组件都会被触发,先触发子组件的再触发根组件
    • 当组件被<keep-alive>缓存后不被触发

    errorCaptured

  • 相关阅读:
    JVM内存的划分
    劝学
    java中switch的用法
    方法传递参数的分类
    ajax缓存机制
    vuex
    keep-alive
    路由滚动行为scrollBehavior
    vue等
    防止刷新路由后参数消失
  • 原文地址:https://www.cnblogs.com/qq3279338858/p/10282163.html
Copyright © 2020-2023  润新知