本篇文章给大家带来了关于vue的相关知识,其中主要介绍了vue生命周期钩子函数有哪些,分别什么时候触发,vue生命周期即为一个组件从出生到死亡的一个完整周期,下面一起来看一下,希望对大家有帮助。

【相关推荐:javascript视频教程、vue.js教程】

vue生命周期钩子函数

vue生命周期即为一个组件从出生到死亡的一个完整周期

主要包括以下4个阶段:创建,挂载,更新,销毁

  • 创建前:beforeCreate, 创建后:created
  • 挂载前:beforeMount, 挂载后:mounted
  • 更新前:beforeUpdate, 更新后:updated
  • 销毁前:beforeDestroy, 销毁后:destroyed

我平时用的比较多的钩了是created和mounted,created用于获取后台数据,mounted用于dom挂载完后做一些dom操作,以及初始化插件等.beforeDestroy用户清除定时器以及解绑事件等,

另外还新增了使用内置组件 keep-alive 来缓存实例,而不是频繁创建和销毁(开销大)

  • actived 实例激活
  • deactived 实例失效

以下为详解版

大家理解就ok:

生命周期钩子函数(11个)Function(类型),标注蓝色的那个是属于类型的意思。

  • beforeCreate Function 在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。

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

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

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

  • beforeUpdate Function 数据更新时调用,发生在虚拟 DOM 打补丁之前。这里适合在更新之前访问现有的 DOM,比如手动移除已添加的事件监听器。该钩子在服务器端渲染期间不被调用,因为只有初次渲染会在服务端进行。

  • updated Function 由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。

  • activated Function keep-alive 组件激活时调用。该钩子在服务器端渲染期间不被调用。

  • deactivated Function keep-alive 组件停用时调用。该钩子在服务器端渲染期间不被调用。

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

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

  • errorCaptured(2.5.0+ 新增) (err: Error, vm: Component, info: string) => ?boolean 当捕获一个来自子孙组件的错误时被调用。此钩子会收到三个参数:错误对象、发生错误的组件实例以及一个包含错误来源信息的字符串。此钩子可以返回 false 以阻止该错误继续向上传播。

生命周期mounted和activated使用、踩坑

activated

说到activated不得不提到keep-alive,你切换出去又切出来会调用到它。(你可以理解为生命周期钩子函数,用法也一样)

mounted

指的是实例被挂载后调用,如果没有keep-alive每次切回来该组件都会触发一次,但是keep-alive会缓存不活动的组件实例,那么可以说他只会触发一次。所以往往一些数据的请求要在这写一次请求,在activated里写一次请求,保证你浪荡回来还能请求到新的数据。

踩坑

1.这里有个关键词是实例,也就是说如果你用了$refs,你就得注意了。

2.mounted先执行,首次进入时候两个一起执行

附言

keep-alive的运用非常非常非常多。

【相关推荐:javascript视频教程、vue.js教程】

以上就是聊聊vue生命周期钩子函数有哪些以及什么时候触发的详细内容,更多请关注动说科技其它相关文章!

声明:本文转载于:脚本之家,如有侵犯,请联系admin@php.cn删除

  • 相关标签:Vue
  • 推荐:PHP从基础到实战教程视频

    • 上一篇:Vue中slot使用解析之具名插槽与作用域插槽
    • 下一篇:Vue计算属性computed可以做什么?应用场景浅析

    相关文章

    相关视频


    • VUE组件的创建、渲染、及注册(总结分享)
    • 实例解决vue中使用lang=“scss“出现的报...
    • 举例说明Vue Router路由重定向与别名设置
    • 通俗易懂!详解VUEX状态仓库管理
    • 实例介绍Vue通过$emit方法实现子父组件通信
    • 聊聊vue生命周期钩子函数有哪些以及什么时候触发
    • javascript的变量
    • javascript的数据类型
    • javascript数据类型转换
    • javascript的运算符

    专题推荐

    • 独孤九贱-php全栈开发教程

      全栈 170W+

      主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门

    • 玉女心经-web前端开发教程

      入门 80W+

      主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门

    • 天龙八部-实战开发教程

      实战 120W+

      主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习

    • Laravel 9 学习正当时—保姆级教程,想学不会都难!

      实战 21317次学习

      主讲:博愿 全栈工程师,拼命探索,不计后果

    • 千万级数据并发解决方案(理论+实战)

      实战 55750次学习

      主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习

    • 共22门课程,总价3725元,开通VIP会员免费学

      实战 55750次学习

      主讲:Peter-Zhu、西门大官人、灭绝师太、欧阳克

    作者信息

    长期闲置

    长风破浪会有时,直挂云帆济沧海。

    最近文章
    简单搞懂PHP中的DI依赖注入465
    一文掌握vue-router的安装与使用318
    实例详解vue基于element-plus的组件二次封装913
    ❤️‍🔥IPIDEA 爬虫采集无IP封禁 无限并发1679
    讲师入驻(把你的才变成财)
    IPIDEA,高度匿名的真实住宅代理,爬虫采集无IP封禁,千万IP资源,无限并发,领取2G流量,住宅IP免费用
    ❤️‍🔥IPIDEA,高度匿名的真实住宅代理,爬虫采集无IP封禁,千万IP资源,无限并发,领取2G流量,住宅IP免费用
    • 最新文章
    • 热门排行

    • ❤️‍🔥共22门课程,总价3725元,开通VIP会员免费学习
    • 一文掌握vue-router的安装与使用
    • 深入探讨Vue中数据双向绑定的原理及实现
    • 实例详解Vue中v-model指令的用法
    • 详解Vue项目如何创建路由页面
    • 实例详解vue基于element-plus的组件二次封装
    • 深析Vue router-link组件实现路由导航
    • 详解Vue渲染列表指令:v-for
    • vue引入Element-plus的全局引入与局部引入(附代码)

    • 共22门课程,总价3725元,开通VIP会员免费学习!
    • vue3.0和vue2.0的区别是什么?
    • .vue 是什么
    • vue子组件怎么向父组件传值
    • vue父组件怎么调用子组件的方法
    • vue子组件怎么调用父组件的方法
    • vue-cli-service不是内部或外部命令怎么解决
    • vue中elementUI是什么
    • vue常用指令有哪些
    视频教程分类
    • php视频教程
    • html视频教程
    • css视频教程
    • JS视频教程
    • jQuery视频教程
    • mysql视频教程
    • Linux视频教程
    • Python视频教程

    Comment list 共有 0 条评论

    暂无评论

    微信小程序

    微信扫一扫体验

    立即
    投稿

    微信公众账号

    微信扫一扫加关注

    发表
    评论
    返回
    顶部