美文网首页
2-生命周期

2-生命周期

作者: 谷子多 | 来源:发表于2018-02-06 15:09 被阅读0次

    每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。

    vue的生命周期各阶段都做了什么?

    beforeCreate实例创建前:这个阶段实例的data、methods是读不到的。实例初始化之后,数据观测之前调用;

    created实例创建后:这个阶段已经完成了数据观测(data observer),属性和方法的运算, watch/event 事件回调。mount挂载阶段还没开始,$el 属性目前不可见,数据并没有在DOM元素上进行渲染

    beforeMount:在挂载开始之前被调用:相关的 render 函数首次被调用。

    mounted:el选项的DOM节点 被新创建的 vm.$el 替换,并挂载到实例上去之后调用此生命周期函数。此时实例的数据在DOM节点上进行渲染

    beforeUpdate:数据更新时调用,但不进行DOM重新渲染,在数据更新时DOM没渲染前可以在这个生命函数里进行状态处理

    updated:这个状态下数据更新并且DOM重新渲染,当这个生命周期函数被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作。当实例每次进行数据更新时updated都会执行

    beforeDestory:实例销毁之前调用。

    destroyed:Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。

    vue生命周期在真实场景下的业务应用

    created:进行ajax请求异步数据的获取、初始化数据

    mounted:挂载元素内dom节点的获取

    nextTick:针对单一事件更新数据后立即操作dom

    注意 updated 不会承诺所有的子组件也都一起被重绘。如果你希望等到整个视图都重绘完毕,可以用 vm.$nextTick 替换掉 updated:

    updated:任何数据的更新,如果要做统一的业务逻辑处理

    watch:监听具体数据变化,并做相应的处理

    作者:jirengu_杨然

    链接:https://www.jianshu.com/p/f24d2f6e70f1#comments

    來源:简书

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关文章

      网友评论

          本文标题:2-生命周期

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