Vue学习之实例生命周期

Vue学习之实例生命周期Vue学习之实例生命周期

大家好,又见面了,我是你们的朋友全栈君。

通过前面的介绍我们知道使用Vue的时候我们都必须创建一个Vue实例对象,如下

var vm = new Vue({...})

那么这个Vue实例的生命周期是怎么样的呢?本文我们就来详细的介绍下

在这里插入图片描述

此图为Vue官方给出的生命周期图,可先大概浏览下,如果不懂先不管,继续往下看。

Vue实例生命周期

上图是官方给出的生命周期的流程图。我们一一来介绍下生命周期中各个方法的具体作用,为了便于理解将这些方法分为了三类,分别如下:
创建期间的生命周期函数

 方法           | 说明                                                     
 ------------ | ------------------------------------------------------- 
 beforeCreate | 第一个生命周期方法,表示实例被创建出来之前会被调用 ,此时,还没有初始化好 data 和 methods 属性
 created      | 实例已经在内存中创建完成,此时 data 和 methods 已经创建完成,此时还没有开始 编译模板     
 beforeMount  | 此时已经完成了模板的编译,但是还没有挂载到页面中                               
 mounted      | 此时,已经将编译好的模板,挂载到了页面指定的容器中显示                            

运行期间的生命周期函数

 方法           | 说明                                                               
 ------------ | ----------------------------------------------------------------- 
 beforeUpdate | 状态更新之前执行此函数, 此时 data 中的状态值是最新的,但是界面上显示的 数据还是旧的,因为此时还没有开始重新渲染DOM节点
 updated      | 实例更新完毕之后调用此函数,此时 data 中的状态值 和 界面上显示的数据,都已经完成了更新,界面已经被重新渲染好了!     

销毁期间的生命周期函数

 方法            | 说明                                                          
 ------------- | ------------------------------------------------------------ 
 beforeDestory | 实例销毁之前调用。在这一步,实例仍然完全可用。                                     
 destoryed     | Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。

beforeCreate

首先我们来看下beforeCreate这个方法,这个方法是生命周期的第一个方法,此时Vue实例中的 data 和 methods的内容都还没有被加载如下:

基础页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./lib/vue-2.4.0.js"></script>
</head>
<body>
    <div id="app">
    </div>
    <script >
        var vm = new Vue({
            el: "#app",
            data: {
                msg: 'ok'
            },
            methods: {
                show: function(){
                    console.log("show 方法执行了...")
                }
            }
        })
    </script>
</body>
</html>

然后我们来看下 beforeCreate方法的效果

在这里插入图片描述

在这里插入图片描述

通过页面 控制台 可以看到 data中的数据和 methods中的方法都没有被初始化好。

created

接下来看下 created 方法,该方法是在Vue实例创建完成后被调用用的,且 data和methods 中的都被初始化好了,我们来测试下。

在这里插入图片描述

效果

在这里插入图片描述

beforeMount

beforeMount 执行的时候 已经完成了模板的编译,但是还没有挂载到页面中,我们通过案例来演示下。

在这里插入图片描述

效果

在这里插入图片描述

通过效果可以看出 beforeMount 方法执行的时候 内存的中的数据已经被改变了,但是页面中的数据还没有被渲染。

mounted

mounted方法执行的时候已经将编译好的模板,挂载到了页面指定的容器中显示。

在这里插入图片描述
效果

在这里插入图片描述

通过效果也能看出 mounted 方法执行的时候,内存和页面的数据都已经更新了。
注意: mounted 是 实例创建期间的最后一个生命周期函数,当执行完 mounted 就表示,实例已经被完全创建好了,此时,如果没有其它操作的话,这个实例,就静静的躺在我们的内存中,一动不动.

beforeUpdate

接下来的是运行中的两个方法,beforeUpdate 方法,状态更新之前执行此函数, 此时 data 中的状态值是最新的,但是界面上显示的 数据还是旧的,因为此时还没有开始重新渲染DOM节点。

在这里插入图片描述

在这里插入图片描述

通过效果我们可以看到,当beforeUpdate方法执行的时候,内存的数据被更新了,但是此时 页面中的数据还没有被更新。

updated

实例更新完毕之后调用此函数,此时 data 中的状态值 和 界面上显示的数据,都已经完成了更新,界面已经被重新渲染好了!

在这里插入图片描述
效果

在这里插入图片描述

通过效果可以看到,当 updated方法执行的时候,内存和页面中的数据都已经被更新了!

beforeDestory

beforeDestory 效果不太好演示,实例销毁之前调用。在这一步,实例仍然完全可用,大家记住这个即可

destoryed

同样该方法也不好演示,该方法执行的时候,实例已经不可使用了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106493.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android直播开发之旅(10):AndroidUSBCamera,UVCCamera开发通用库(支持开启多路摄像头)[通俗易懂]

    Android直播开发之旅(10):AndroidUSBCamera,UVCCamera开发通用库(支持开启多路摄像头)[通俗易懂]AndroidUSBCamera基于[saki4510t/UVCCamera](https://github.com/saki4510t/UVCCamera)开发,该项目对USBCamera(UVC设备)的使用和视频数据采集进行了高度封装,能够帮助开发者通过几个简单的API实现USBCamera设备的检测、连接、预览和音视频数据采集,最重要的是手机无需root,只需支持otg功能即可驱………

    2022年8月13日
    8
  • EMWIN 使用记录

    EMWIN 使用记录EMWIN使用记录回调函数WM_PAINT其中出现pMsg-&gt;hWin是对话框的客户区句柄,其父句柄就是控件句柄WM_INIT_DIALOG其中出现pMsg-&gt;hWin是对话框控件句柄,控件函数使用CreatXXX返回的句柄为控件句柄,window控件可能需要除外…

    2022年10月14日
    2
  • Java Web项目 慧心人力资源管理系统[通俗易懂]

    Java Web项目 慧心人力资源管理系统[通俗易懂]美和易思JavaWeb机试试题题目:慧心人力资源管理系统文档下载:https://download.csdn.net/download/weixin_44893902/16336711实现代码下载:目录一、语言和环境二、实现功能三、数据库设计四、具体要求及推荐实现步骤五、评分标准六、实现代码一、语言和环境实现语言:JAVA语言。 环境要求:MyEclipse/Eclipse+Tomcat+MySql。 使用技术:Jsp+Servlet+Jav..

    2022年5月28日
    31
  • vs2013下载地址_vs2013使用

    vs2013下载地址_vs2013使用微软已经向MSDN订阅用户提供了VisualStudio2013正式版镜像下载,不过非MSDN用户可以在微软的VisualStudio2013官方网站上下载到正式版镜像(通过下载专业版本,已验证与MSDN版本一致)。下面为大家整理一下个版本下载地址。MicrosoftVisualStudioUltimate2013(简体中文旗舰版)文件名: cn_visual_studio…

    2025年10月25日
    4
  • FPN(特征图金字塔网络)理论基础与具体实现

    FPN(特征图金字塔网络)理论基础与具体实现论文地址:FeaturePyramidNetworksforObjectDetection项目地址:FPN_pytorch0x00前言我们在做目标检测和超分辨率重建等问题的时候,我们一般是对同一个尺寸的图片进行网络训练。我们希望我们的网络能够适应更多尺寸的图片,我们传统的做法使用图像金字塔,但是这种做法从侧面提升了计算的复杂度,我们希望可以改善这个问题,所以本文就提出了…

    2022年6月9日
    52
  • DOS攻击工具(dos攻击教程)

    DOS攻击工具(dos攻击教程)DoS(DenialOfService)攻击是指故意的攻击网络协议实现的缺陷或直接通过野蛮手段残忍地耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统服务系统停止响应甚至崩溃然而随着网络上免费的可用DDoS工具增多,DoS攻击也日益增长,下面介绍几款Hacker常用的DoS攻击工具。特别提示:仅用于攻防演练及教学测试用途,禁止非法使用。1、卢瓦(LO…

    2022年4月18日
    558

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号