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

Vue生命周期

时间:2023-10-12 10:23:51浏览次数:29  
标签:生命周期 console log 销毁 调用 Vue

Vue生命周期

什么是Vue生命周期

指的是Vue从创建到销毁整个过程

在官网中这样说到"每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤"以及"在此过程中,它也会运行被称为生命周期钩子的函数,让开发者有机会在特定阶段运行自己的代码。"

官网图示如下

 

 

Vue生命周期函数

  • 初始化显示

    • beforeCreate()

    • created()

    • beforeMount()

    • mounted()

  • 更新状态:this.xxx=value

    • beforeUpdate()

    • updated()

  • 销毁Vue实例vm.%destory()

    • beforeDestory()

    • destoryed()

  • 注册生命周期钩子

    onMounted钩子可在组件完成初始渲染并创建DOM节点后运行代码

<script setup>
import { onMounted } from 'vue'
​
onMounted(() => {
  console.log(`the component is now mounted.`)
})
</script>

 

 
  • 常用方法

    1)mounted()

    发送AJAX请求、启动定时器、绑定自定义事件、订阅消息等异步任务(初始化操作)

    2)beforeDestroy()

    如: 清除定时器、解绑自定义事件、取消订阅消息等(收尾工作)

注意!

  • 生命周期函数的名字不可更改,但函数内容是由程序员根据需求编写

  • 生命周期函数中的 this 指向是 vm 或 组件实例对象

  • 销毁时注意

    1. 销毁后借助 Vue 开发者工具看不到任何信息

    2. 销毁后自定义事件会失效,但原生 DOM 事件依然有效

    3. 一般不会在 beforeDestroy 操作数据,因为即便操作数据,也不会再触发更新流程

<script>
        //创建一个Vue对象实例
        new Vue({
            el:'#root',//el用于指定当前Vue实例为哪个容器服务,值通常为css选择器(id选择器)
            data:{//data属性用于存储页面渲染的数据
                name:'3DG',
                address:'成都'
            },
            //Vue生命周期钩子函数
            beforeCreate(){
                console.log("调用beforeCreate");
            },
            created(){
                console.log("调用created");
            },
            beforeMount(){
                console.log("调用beforeMount");
            },
            mounted(){
                //vue创建完成,可完全使用vue兑现实现数据初始化工具
                console.log("调用mounted");
            },
            beforeUpdate(){
                console.log("调用beforeUpdate");
            },
            updated(){
                console.log("调用updated");
            },
            beforeDestroy(){
                console.log("调用beforeDestroy");
                alert("销毁前")
            },
            destroyed(){
                console.log("调用destrouyed");
                alert("销毁后")
            }
        })
    </script>

 



标签:生命周期,console,log,销毁,调用,Vue
From: https://www.cnblogs.com/3-DG/p/17758866.html

相关文章

  • 第十九篇 - Vue如何通过session记住User
    登录成功后前端存储user对象window.sessionStorage.setItem("currentuser",JSON.stringify(successResponse.data.data.user))前端script中使用user对象中的值JSON.parse(sessionStorage.getItem("currentuser")).user_name前端vue中使用user对象的值{{currentuser.usernam......
  • 2.前端框架(Vue)
    前端框架(Vue)Vue概念;vue是一套前端框架,免除原生JavaScript中的DOM操作,简化书写;基于MVVM(Model-View-ViewModel)思想,实现数据的双向绑定,将编程的关注点放在数据上;官网:https://v2.vuejs.org/框架:是一个半成品软件,是一套可重用的、通用的、软件基础代码模型。基于框架进行开......
  • 讲述vue中data值都有哪些,如何调用
    讲述vue中data值都有哪些,如何调用1,字符串2,对象3,函数4,数字<html>  <head>  <metacharset="UTF-8">  <metaname="viewport"content="width=device-width,initial-scale=1.0">  <title>vue.js</title> ......
  • vue项目打包,解决静态资源无法加载和路由加载无效(404)问题
    打包后的项目静态资源无法使用,导致页面空白静态资源无法使用,那就说明项目打包后,图片和其他静态资源文件相对路径不对,此时找到config里面的index.js,在build模块下加入assetsPublicPath:'./', 如下图所示,    在History模式下配合使用nginx运行打包后的项目当刷新当前路......
  • SpringBean生命周期
    SpringBean生命周期读源码小方法:先把所有代码块折叠,看整体,再逐步进入局部,忽略异常处理。写简单程序打断点调试。本文主要ref结论生命周期主要的扩展点:实例化(doGetBean()->createBeanInstance()),注入(populate),初始化(initializeBean),销毁。一般processor都是在这些点前后......
  • Vue响应式
    目录Vue中的响应式对象独立的响应式值计算变量监听响应式变量setup方法Vue中的响应式对象Vue3允许在setup()中定义组件需要的数据和方法,通过return在模板中可以直接使用reactive方法<body><divid="Application"></div><script>constApp=Vue......
  • vue框架,input相同标签如何定位-label定位
    一、问题提出:后台前端框架改版,之前是angularjs,现在用vue,导致input标签定位失败,只能定位到第一个input标签,查看后台源代码发现这两个标签是一模一样,如下图:二、问题思考过程1.为什么以前的版本可以定位成功,而现在的就定位不了啦查阅之前版本的这部分定位代码,发现原来的框架是......
  • Vue自定义指令实现复制功能
    importVuefrom'vue'importstorefrom'../store'functioncopyMethod(value){lettext=''switch(typeofvalue){case'number':text=value.toString()breakcase'object':text=JSON......
  • Vue 路由——重定向
    问题描述:网页打开,url默认是/路径,未匹配到组件时,会出现空白解决:重定向→匹配path后,强制跳转path路径 语法:{path:匹配路径, redirect:重定向到的路径}constrouter=newVueRouter({ routes:[  {path: '/', redirect:'/find'}, ......
  • 问题记录贴:vue-i18n在弹出框中$t()报错:TypeError: Cannot read property '_t' of unde
    网上有用的解决方法:vue国际化在弹出框中$t()报错:TypeError:Cannotreadproperty'_t'ofundefined大佬给出的解决方法:弹窗是一个新的Vue对象,只需要单独给弹窗重新绑定i18n即可。代码://dialog/main.jsimportcustomDialogfrom'./dialog.vue'importi18nfrom'@/i18n'......