Vue生命周期区别详解

 更新时间:2021-08-05 16:38:14   作者:佚名   我要评论(0)

生命周期分类

vue每个组件都是独立的,每个组件都有一个属于它的生命周期,

从一个组件创建、数据初始化、挂载、更新、销毁,这就是一个组

生命周期分类

vue每个组件都是独立的,每个组件都有一个属于它的生命周期,

从一个组件创建数据初始化挂载更新销毁,这就是一个组件所谓的生命周期。
在组件中具体的方法有:
beforeCreate
created
beforeMount
mounted
beforeUpdate
updated
beforeDestroy
destroyed

beforeCreate( 创建前 )

在实例初始化之后,数据观测和事件配置之前被调用,此时组件的选项对象还未创建,el 和 data 并未初始化,因此无法访问methods,
data, computed等上的方法和数据。

created ( 创建后 )

实例已经创建完成之后被调用,在这一步,实例已完成以下配置:数据观测、属性和方法的运算,watch/event事件回调,完成了data 数据的初始化,el没有。 然而,挂在阶段还没有开始, $el属性目前不可见,这是一个常用的生命周期,因为你可以调用methods中的方法,改变data中的数据,并且修改可以通过vue的响应式绑定体现在页面上,,获取computed中的计算属性等等,通常我们可以在这里对实例进行预处理

beforeMount(挂载前)

挂在开始之前被调用,相关的render函数首次被调用(虚拟DOM),实例已完成以下的配置: 编译模板,把data里面的数据和模板生成html,完成了el和data 初始化,注意此时还没有挂在html到页面上。

mounted(挂载后)

挂在完成,也就是模板中的HTML渲染到HTML页面中,此时一般可以做一些ajax操作,mounted只会执行一次。

beforeUpdate(更新前)

在数据更新之前被调用,发生在虚拟DOM重新渲染和打补丁之前,可以在该钩子中进一步地更改状态,不会触发附加地重渲染过程

updated(更新后)

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

beforeDestroy(销毁前)

在实例销毁之前调用,实例仍然完全可用,
这一步还可以用this来获取实例,
一般在这一步做一些重置的操作,比如清除掉组件中的定时器 和 监听的dom事件

destroyed(销毁后)

在实例销毁之后调用,调用后,所以的事件监听器会被移出,所有的子实例也会被销毁,该钩子在服务器端渲染期间不被调用
vue实例已经解除了事件监听以及dom的绑定,但是dom结构依然存在

执行顺序(图示)

在这里插入图片描述

到此这篇关于Vue生命周期区别详解的文章就介绍到这了,更多相关Vue生命周期内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • Vue.js中的计算属性、监视属性与生命周期详解
  • Vue过滤器,生命周期函数和vue-resource简单介绍
  • 梳理一下vue中的生命周期
  • 对vue生命周期的深入理解
  • Vue组件生命周期运行原理解析
  • vue3.0生命周期的示例代码
  • Vue父组件监听子组件生命周期
  • 浅谈vue生命周期共有几个阶段?分别是什么?

您可能感兴趣的文章:

相关文章

  • Vue生命周期区别详解

    Vue生命周期区别详解

    生命周期分类 vue每个组件都是独立的,每个组件都有一个属于它的生命周期, 从一个组件创建、数据初始化、挂载、更新、销毁,这就是一个组
    2021-08-05
  • Vue之监听方法案例详解

    Vue之监听方法案例详解

    vue中的监听方法 watch 注意 名字 你想监听哪个属性,就要和他起一样的名字 1.作用 用来监听vue实例中的数据变化 可以随时修改状态的变化
    2021-08-05
  • JavaScript平铺数组转树形结构的实现示例

    JavaScript平铺数组转树形结构的实现示例

    目录后台丢来了1w条数据 递归方式非递归方式总结后台丢来了1w条数据 千算万算,还是没有逃过,后台真的就上万条数据一次丢给前端了。好吧
    2021-08-05
  • 使用vue实现手写签名功能

    使用vue实现手写签名功能

    个人实现截图: 安装: npm install vue-esign --save 使用: 1.在main.js中引入 import vueEsign from 'vue-esign' Vue.use(vueEsign
    2021-08-05
  • JavaScript数据类型转换实例(其他类型转字符串、数值型、布尔类型)

    JavaScript数据类型转换实例(其他类型转字符串、数值型、布尔类型)

    前言 什么是数据类型转换? 使用表单、prompt 获取过来的数据默认类型是字符串类型的,此时就不能直接进行加减法运算,而需要转换变量的
    2021-08-05
  • H5微信公众号授权的简单实现步骤

    H5微信公众号授权的简单实现步骤

    前言 昨天因为有一个项目上面需要实现h5微信授权工作。所以花了两个小时来完成这个功能。​ ​ 开始工作前做的准备 流程说明【提前
    2021-08-05
  • Vue封装通用table组件的完整步骤记录

    Vue封装通用table组件的完整步骤记录

    目录前言 为什么需要封装table组件? 第一步:定义通用组件 第二步:父组件与子组件进行render通信 第三步:使用组件 总结 前言 随
    2021-08-05
  • jQuery实现表格行数据滚动效果

    jQuery实现表格行数据滚动效果

    本文实例为大家分享了jQuery实现表格行数据滚动效果的具体代码,供大家参考,具体内容如下 HTML代码: <div class="box"> <div class="b
    2021-08-05
  • Vue3和Electron实现桌面端应用详解

    Vue3和Electron实现桌面端应用详解

    目录Vue CLI 搭建Vue项目Vue项目改造为markdown编辑器Vue CLI Plugin Electron Builder优化功能启动全屏显示修改菜单栏编辑器打开markdonw文
    2021-08-05
  • Vue 可拖拽组件Vue Smooth DnD的使用详解

    Vue 可拖拽组件Vue Smooth DnD的使用详解

    目录简介和 Demo 展示API: Container属性生命周期回调事件API: Draggable实战简介和 Demo 展示 最近需要有个拖拽列表的需求,发现一个简单好
    2021-08-05

最新评论