zoukankan      html  css  js  c++  java
  • vue的生命周期

    vue的生命周期是vue中的一个重点难点。同时也是面试的一个必考点

    vue有10个生命周期。分别是beforecreate、created、beforemount、mounted、beforeupdate、update、activated、deactivated、beforedestroy、destroy。

    其中,除了mounted生命周期函数,其余的生命周期函数在服务端渲染期间都不能被调用。

      beforedcreated:是在实例初始化以后,数据观测以后和event/wtach的事件配置之前被调用。(注意:watch是检测到值的变化执行回调,并且在回调过程中执行逻辑操作。使用的场景是我们需要执行复杂的逻辑操作。而computer则是一个计算属性,并且其计算值具有缓存性,且依赖于其他属性的计算值,当计算值发生变化时才返回内容。使用的场景是我们需要依赖于其他属性的计算值的变化来动态获取值的时侯

      created:这是指实例创建完成以后。在这一步,实例已经完成:数据观测、属性、方法的运算、watcher/event事件回调。然而,挂载还未开始,$el属性目前还不可见。

      beforemount:在挂载开始之前调用该钩子函数,相关的render函数首次被调用。

      mounted:是el被创建的vm.$el被替换,并且挂载到实例上去以后,调用该钩子函数。如果root实例挂载了一个文档内元素,当mounted被调用时vm.$el也在文档内。

      而在生命周期created、以及生命周期mounted中可以使用ajax请求。但是当在生命周期中created中,此时还未挂载dom,所以不能拿到真实的dom。而在mounted中,则可以直接操作dom。

    注意:由于created在服务端渲染时不能被调用,所以我们统一在mounted中使用ajax请求

      beforeupdate:数据更新时调用,发生在虚拟DOM重新渲染和打补丁之前。在这个钩子函数中,可以进一步更改状态,并且不会触发附加的重渲染过程

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

      activated:  当组件keep-alive激活时被调用

      deactivated:当组件keep-alive停用时被调用
      beforedestroy:实例销毁之间使用。此时,实例还可以被调用。

      destroy:实例销毁以后调用。调用之后,vue实例指示的所有的东西解绑、事件监听移除、子实例销毁、清除自己定义的定时器

    再宏伟的目标,拆分下来,也只是一串串的代码而已;一串串的代码,细分来看,也只是一个一个的字母而已!也许,我做不到一晚上完成大神一小时随便敲打的项目,但为这一目标,每天添砖加瓦,我想我应该是可以完成的!
  • 相关阅读:
    sqlserver如何查询一个表的主键都是哪些表的外键
    sql server nullif的使用技巧,除数为零的处理技巧
    如何解决数据库中,数字+null=null
    sql server truncate table 删除表数据限制条件
    eclipse需要的环境变量就两个,一个是java_home指向JDK。另一个是Tomcat,自己去preference-sever下new一个
    解释Eclipse下Tomcat项目部署路径问题(.metadata.pluginsorg.eclipse.wst.server.core mp0wtpwebapps)
    mysql登录退出命令
    代码svn下载到本地后,关于数据库问题
    MySQL配置文件详解
    mysql查看存储过程show procedure status;
  • 原文地址:https://www.cnblogs.com/Annely/p/14523021.html
Copyright © 2011-2022 走看看