首页 > 其他分享 >Vue生命周期

Vue生命周期

时间:2024-08-20 14:53:02浏览次数:7  
标签:el 生命周期 console log vue 周期函数 Vue 挂载

从vue实例创建、运行、到销毁期间,总是伴随着各种各样的事件。而这些事件称为生命周期。 每个Vue实例在被创建的时候都要经过一系列的初始化过程,例如,需要数据监听,编译模板,实例挂载到dom并在数据变化 时更新Dom等,同时在这个过程中也会运行一系叫做生命周期钩子的函数,这给了用户在不同阶段添加自己代码的机会。 created\mounted\updated\destroyed vue实例的生命周期 1、当我们引入vue.js之后,vue就会成为全局变量,我们可以通过new Vue创建一个vue实例 2、初始化事件和生命周期函数(没有执行) 3、生命周期函数:beforeCreated() ,在实例初始化之后,data和methods创建之前被调用 那么表明配置项都没有执行,el、data、methods、computed,都无法访问 4、初始化,注入、校验,创建配置对象 5、生命周期函数:created(),配置对象创建之后被调用 表示data和methods以及compute都可以调用,但是el没有,挂载阶段还没有开始 created()生命周期函数是最早可以操作data里面数据的地方。 6、是否指定el配置项,如果没有配置,是否调用vm.$mount(el)。 也就是说,要么配置了el配置项 要么调用vm.$mount(el) 7、是否指定template选项 8、如果配置了template,则是用template替代挂载点 如果没有配置template,则将el外部的HTML作为template编译 9、生命周期函数beforeMount() 挂载开始之前被调用,那么表示还没有把数据真正放到模板中 在这里还可以看到原始的模板数据,不如{{xxx}} 10、创建vm.$el并用其替代el,用编译好的内容(指令和插值表达式替换后的内容)替代el挂在店里面的模板内容 11、生命周期函数mounted(),挂载完成之后调用,可以获取到渲染到页面的真实数据,mounted是我们用的最多的生命周期函数,用来发送一些异步请求 12、经过上面的一系列过程,脱离了创建阶段,挂载完毕 13、生命周期函数,beforeUpdate(),实时监听数据变化(双向监听),一旦data的数据发生改变,就会被调用 这里还没有进行数据的更新 14、虚拟DOM重新渲染并应用更新 15、生命周期函数:updated(),更新完成之后,dom和date同步 16、当我们调用vm.$destroy()函数,,进行销毁阶段 17、生命周期函数beforeDestroy(),销毁之前 18、解除绑定销毁子组件以及事件监听器,简单来说:销毁Vue实例对象,以及销毁vue配置对象
主要生命周期函数分类: 创建/初始化阶段的生命周期函数(4个函数)   beforeCreated() 配置对象创建之前   created() 配置对象创建之后   beforeMount() 挂载之前   mounted() 编译之后的模板挂载到DOM之后 运行/更新阶段生命周期函数(2个函数)   beforeUpdated() 更新date的数据之前   updated() 更新date的数据之后 销毁阶段的生命周期函数(2个函数)   beforeDestroy() 销毁vue实例和配置项实例之前   destroyed() 销毁vue配置对象之后 有如下例子:测试beforeCreated()

            //在vue实例里面定义生命周期函数
            beforeCreate(){
                console.log(this.msg);//这个内容是不会获取得到的是undeifned
            },

测试created()

            //配置对象创建之后调用,可以调用吃了el之外的所有内容
            created () {
                console.log(this.msg);
                console.log(this.reserveMs);
            }

测试before mounted

            //挂载之前,编译的模板还没有替换挂载点的内容
            beforeMount () {
                console.log('执行挂载之前的内容');
                var txt = document.getElementById("app").innerText;
                console.log(txt);
            }

 测试mounted,挂载完成函数

            //挂载完成
            mounted () {
                console.log('执行挂载完成的内容');
                var txt = document.getElementById("app").innerText;
                console.log(txt);
            }

测试beforeUpdate,更新数据之前,注意更新数据之前是dom界面的数据没有发生改变,但是data内存中的数据已经发生了改变
            //更新数据之前
            beforeUpdate () {
                console.log('更新数据之前的数据');
                var txt = document.getElementById("app").innerText;
                console.log(txt);
                console.log(this.msg);
            }

测试updated,更新数据之后完全同步了,data和dom是最新的数据

            updated () {
                console.log('更新数据之后的数据');
                var txt = document.getElementById("app").innerText;
                console.log(txt);
                console.log(this.msg);
            }

常用的生命周期方法: created()/mounted():发送ajax请求,启动定时器等异步任务 beforeDestroy()做收尾工作,如清除定时器

 

标签:el,生命周期,console,log,vue,周期函数,Vue,挂载
From: https://www.cnblogs.com/yansunda/p/18369390

相关文章

  • 创建uni-app项目(vue3+ts+vite)
     npxdegitdcloudio/uni-preset-vue#vite-tsm-uni-demo1跳转到对应目录,装包,运行cdm-uni-demo1yarnyarndev:h5tsconfig.json:{"extends":"@vue/tsconfig/tsconfig.json","compilerOptions":{"ignoreDeprecations&quo......
  • SpringBoot+Vue校园兼职平台-计算机毕业设计源码26261
    摘要校园兼职平台作为连接学生和校园兼职资源的重要桥梁,具有推动校园就业服务和学生职业发展的重要作用。本项目旨在基于SpringBoot后端框架和Vue前端框架,设计和实现一个高效、便捷的校园兼职平台。通过该平台,学生可以轻松浏览、搜索和申请各类校园兼职岗位,实现校园资源的最......
  • 学习vue3——分页(前、后端分页两种)
    一、前端分页 后端将所有数据给前端,前端来实现分页1<template>2<divclass="flexitems-centerjustify-centermt-5">3<el-pagination4background5v-model:current-page="currentPage1"6......
  • 【Vue】考试功能实现
    一、需求场景 最近临时加的一个功能模块,让我两天就实现.... 部门成员需要进行测验考试,简单来说就是刷题练习 关于题库导入的部分在这篇文章已经写好了:https://www.cnblogs.com/mindzone/p/18362194 分值计算的需求目前没加入进来,只判断对错与否,然后计数题目总数和做对题数......
  • Vue 3 组件渲染“暂停”技巧
    目录为什么需要“暂停”渲染?实现思路示例实现1.创建组件2.解释实现优化建议更深入的渲染控制1.异步组件2.使用Suspense3.废弃管理性能优化技巧1.虚拟滚动2.使用watchEffect3.事件处理实际应用场景        在使用Vue3开发复杂应用时,有时我们......
  • Vue 项目 毒鸡汤 壮士可要来一碗!
    项目灵感来自“聆听远方”的毒鸡汤非常简单适合Vue新童鞋按国际惯例先上图来不及解释了快把代码复制走poison-soup.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,......
  • Vue 项目 毒鸡汤 壮士可要来一碗!
    项目灵感来自“聆听远方”的毒鸡汤非常简单适合Vue新童鞋按国际惯例先上图来不及解释了快把代码复制走poison-soup.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,......
  • vue3 响应式 API:computed()
    介绍基本概念:computed()接收一个getter函数或者一个包含getter和setter函数的对象作为参数,并返回一个基于原始响应式数据计算得到的新的响应式数据对象。计算属性的值会根据其依赖的响应式数据自动更新,当依赖的数据发生变化时,计算属性的值也会自动重新计算。返......
  • vue3---vite框架
    在使用VUE3的时候,可以使用vite脚手架:Vite的特点:1.快速的冷启动,不需要等待打包2.即时的热模块更新3.真正的按需编译,不用等待整个项目编译完成1、构建vite项目npminitvite@latest#初始化vite项目或者npmcreatevite@latest#创建vite项目选择Vue根据醒目需要选......
  • 黑马毕设分享《基于vue的地方美食分享网站》(源码+lw+部署文档+讲解等)
    文章目录1.前言黑马设计——专注大学生的项目实战开发,免费讲解,毕业答疑辅导黑马设计工作室简介:黑马设计是一家专注大学生的项目实战开发,免费讲解,毕业答疑辅导的工作室✅,创始人是硕士毕业于华南理工大学,工科专业,目前团队成员全职+兼职上百余人,运营线上店铺2家,与B站(IT实战,黑......