当前位置: 首页 > news >正文

vue2生命周期

vue2生命周期

在进行组件化项目开发的时候都会存在一个组件的生命周期概念,像Vue、React、小程序等等,无一例外,而通常情况组件的生命周期主要分成三个阶段,包括:创建、更新以及销毁阶段。

Vue的生命周期钩子函数主要包括:

  1. beforeCreate(): 在实例初始化之后调用, data和methods都还没有初始化完成, 通过this不能访问
  2. created(): 此时data和methods都已初始化完成, 可以通过this去操作, 可以在此发ajax请求
  3. beforeMount(): 模板已经在内存中编译, 但还没有挂载到页面上, 不能通过ref找到对应的标签对象
  4. mounted(): 页面已经初始显示, 可以通过ref找到对应的标签, 也可以选择此时发ajax请求
  5. beforeUpdate(): 在数据更新之后, 界面更新前调用, 只能访问到原有的界面
  6. updated(): 在界面更新之后调用, 此时可以访问最新的界面
  7. beforeDestroy(): 实例销毁之前调用, 此时实例仍然可以正常工作
  8. destroyed(): Vue 实例销毁后调用, 实例已经无法正常工作了
  9. deactivated():组件失活, 但没有死亡
  10. activated(): 组件激活, 被复用
  11. errorCaptured(): 用于捕获子组件的错误,return false可以阻止错误向上冒泡(传递)

我们通常在created()/mounted()进行发送ajax请求,启动定时器等异步任务,而在beforeDestory()做收尾工作,如: 清除定时器操作。

不过需要注意的是mounted生命周期钩子中并不代表界面已经渲染成功,因为 mounted 不会保证所有的子组件也都一起被挂载。如果你希望等到整个视图都渲染完毕,可以在 mounted 内部使用 vm.$nextTick。
Vue的生命周期钩子函数又分为了:单个组件生命周期、父子组件的生命周期、带缓存的路由组件生命周期等不同的状态,在不同的状态下所拥有的生命周期内容是不相同的。

  • 单个组件生命周期 初始化:

    • beforeCreate
    • created
    • beforeMount
    • mounted

    更新:

    • beforeUpdate
    • updated

    销毁:

    • beforeDestroy
    • destroyed
  • 父子组件的生命周期 初始化:

    • beforeCreate

    • created

    • beforeMount

      • –child beforeCreate
      • –child created
      • –child beforeMount
      • –child mounted
    • mounted

    更新:

    • beforeUpdate

      • –child beforeUpdate

      • –child updated

    • updated

    销毁:

    • beforeDestroy
      • – child beforeDestroy
      • – child destroyed
    • destroyed
  • 带缓存的路由组件生命周期 初始化:

    • mounted

      • –Child activated
    • activated

    路由离开

    • –Child deactivated
    • deactivated

    路由回来

    • –Child activated
    • activated
  • 捕获子组件错误的勾子 子组件执行抛出错误

    • errorCaptured

到这里也就结束了,希望对您有所帮助。

http://www.lryc.cn/news/260667.html

相关文章:

  • 【Flink on k8s】 -- flink kubernetes operator 1.7.0 发布
  • Java网络编程,对使用UDP实现TCP(一)三次握手实现的补充
  • Redis 的常见使用场景
  • VRRP协议详解
  • Linux 常用命令----mktemp 命令
  • 基于ssm服装定制系统源码和论文
  • 【AI】如何准备mac开发vue项目的环境
  • BERT大模型:英语NLP的里程碑
  • JVM的类的生命周期
  • uni-app获取response header响应头(h5/app/小程序三端)
  • 本地部署语音转文字(whisper,SpeechRecognition)
  • js new 原理
  • 智能优化算法应用:基于黏菌算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • LeetCode每日一题——2132.用邮票贴满网格图
  • PyQt6 表单布局Form Layout (QFormLayout)
  • Python: any()函数
  • 一些AG10K FPGA 调试的建议-Douglas
  • 【模型量化】神经网络量化基础及代码学习总结
  • 次模和K次模是多项式可解吗?
  • 网络安全——SQL注入实验
  • 【cocotb】【达坦科技DatenLord】Cocotb Workshop分享
  • Kafka系列之:统计kafka集群Topic的分区数和副本数,批量增加topic副本数
  • 开具实习证明:在线实习项目介绍
  • MFC逆向之CrackMe Level3 过反调试 + 写注册机
  • 【Centos】
  • 1+X大数据平台运维职业技能等级证书中级
  • 网络基础(五):网络层协议介绍
  • 浅显易懂 @JsonIgnore 的作用
  • 【计算机设计大赛作品】诗意千年—唐朝诗人群像的数字展现_附源码—信息可视化赛道获奖项目深入剖析【可视化项目案例-20】
  • 「Swift」Xcode多Target创建