美文网首页
vue总结「三」--组件生命周期

vue总结「三」--组件生命周期

作者: loushumei | 来源:发表于2020-10-26 11:03 被阅读0次

    前置知识:

    $el是什么?

    就是Vue实例挂载的元素节点,值可以是 CSS 选择符,或实际 HTML 元素,或返回 HTML 元素的函数。
    使用场景:

    var app = new Vue({
       el : '#app',
       data : {
        message : 'hello world' 
     }
    })
    

    单个组件的生命周期

    1、beforeCreate

    在实例初始化之后,数据观测和event/watcher事件配置之前被调用。

    2、created

    实例已经创建完成之后被调用。在这一步,实例已经完成以下的配置:数据观测,属性和方法的运算,watch/event事件回调。
    然而,挂载阶段还没开始,$el属性目前不可见。

    3、beforeMount

    在挂载开始之前被调用:相关的render函数首次被调用。
      该钩子在服务器端渲染期间不被调用。

    4、mounted

    el被新创建的vm.el替换,并挂在到实例上去之后调用该钩子函数。 如果root实例挂载了一个文档内元素,当mounted被调用时vm.el也在文档内。
      该钩子在服务端渲染期间不被调用。

    5、beforeUpdate

    数据更新时调用,发生在虚拟DOM重新渲染和打补丁之前。
      你可以在这个钩子中进一步第更改状态,这不会触发附加的重渲染过程。
      该钩子在服务端渲染期间不被调用。

    6、updated

    由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用该钩子。
      当这个钩子被调用时,组件DOM已经更新,所以你现在可以执行依赖于DOM的操作。然而在大多数情况下,你应该避免在此期间更改状态,因为这可能会导致更新无限循环。
      该钩子在服务端渲染期间不被调用。

    7、beforeDestroy

    实例销毁之间调用。在这一步,实例仍然完全可用。
      该钩子在服务端渲染期间不被调用。

    8、destroyed

    Vue实例销毁后调用。调用后,Vue实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。
      该钩子在服务端渲染不会被调用。

    父子组件生命周期

    父组件:index.vue
    子组件:list.vue

    • 挂载阶段:
      index created
      list created
      list mounted
      index mounted

    • 更新:
      index beforeUpdate
      list beforeUpdate
      list updated
      index updated

    相关文章

      网友评论

          本文标题:vue总结「三」--组件生命周期

          本文链接:https://www.haomeiwen.com/subject/zqvxcftx.html