首页 > 其他分享 >生命周期---Vue2&Vue3

生命周期---Vue2&Vue3

时间:2024-05-12 22:22:21浏览次数:20  
标签:生命周期 console log 创建 --- 完毕 Vue2 Vue3 挂载

生命周期---Vue2&Vue3

简单理解为:组件从创建到被销毁的一个过程,就相当于人的一生,从出生到死亡的一个过程。

组件的生命周期

也称生命周期、生命周期函数、生命周期钩子

生命周期在特定的时刻会调用特定的函数

生命周期分为四个阶段,每个阶段都有两个钩子,现只讨论这八个钩子

Vue2的生命周期:

创建

  • 创建前: beforeCreate
  • 创建完毕: created

挂载

  • 挂载前: beforeMount
  • 挂载完毕: mounted

更新

  • 更新前: beforeUpdate
  • 更新完毕: updated

销毁

  • 销毁前: beforeDestory
  • 销毁完毕: destroyed
<template>
  <div class="person">
    <h2>当前求和为:{{ sum }}</h2>
    <button @click="addSum">点我sum+1</button>
  </div>
</template>

<script>
  export default {
    name:'Person',
    data (){
      return{
        sum: 0
      }
    },
    methods:{
        addSum(){
            this.sum += 1
        }
    },
    // 创建前和钩子
    beforeCreate(){
      console.log('创建前');
    },
    // 创建完毕的钩子
    created(){
      console.log('创建完毕');
    },
    // 挂载前
    beforeMount(){
      console.log('挂载前');
    },
    // 挂载完毕
    mounted(){
      console.log('挂载完毕');
    },
    // 更新前
    beforeUpdate(){
      console.log('更新前');
    },
    // 更新完毕
    updated(){
      console.log('更新完毕');
    },
    // 销毁前
    beforeDestroy(){
      console.log('销毁前');
    },
    // 销毁完毕
    destroyed(){
      console.log('销毁完毕');
    },
  }
</script>

Vue3的生命周期

创建

  • setup

挂载

  • 挂载前: onBeforeMount
  • 挂载完毕: onMounted

更新

  • 更新前: onBeforeUpdate
  • 更新完毕: onUpdated

卸载

  • 卸载前: onBeforeUnmount
  • 卸载完毕: onUnmounted
<template>
  <div class="person">
    <h2>当前求和为:{{ sum }}</h2>
    <button @click="addSum">点我sum加1</button>
  </div>
</template>


<script lang="ts" setup name="Person">
  import {onBeforeMount, onBeforeUpdate, onMounted, onUpdated, onBeforeUnmount,onUnmounted,ref} from 'vue'

  let sum = ref(0)

  function addSum(){
    sum.value += 1
  }
  // 创建
  console.log('创建');

  // 挂载前
  onBeforeMount(()=>{
    console.log('挂载前');
  })

  // 挂载完毕
  onMounted(()=>{
    console.log('子---挂载完毕');
  })
  
  // 更新前
  onBeforeUpdate(()=>{
    console.log('更新前');
  })

  // 更新完毕
  onUpdated(()=>{
    console.log('更新完毕');
  })

  // 卸载前
  onBeforeUnmount(()=>{
    console.log('卸载前');
  })

  // 卸载完毕
  onUnmounted(()=>{
    console.log('卸载完毕');
  })
</script>
<style>
</style>

App.vue是根组件,必须等所有子组件和子子组件挂载完成(深度遍历),根组件才算完成

创建项目

Vue2

安装脚手架: npm i -g @vue/cli

创建项目: vue create vue2_project

package.json里面有serve,所以启动项目就是: npm run serve

进入刚刚创建的项目里面,然后来启动

注意:这两条代码写进项目里可以忽略警告!

只关闭这一行代码警告
// eslint-disable-next-line

关闭以下所以代码警告
/* eslint-disable */

标签:生命周期,console,log,创建,---,完毕,Vue2,Vue3,挂载
From: https://www.cnblogs.com/sharenotes/p/18188280

相关文章

  • 鸿蒙HarmonyOS实战-ArkUI事件(组合手势)
    ......
  • RAG学习--pdf读取
    RAG流程:线下:1、文档加载2、文档切分3、向量化4、向向量数据库灌数据线上:1、获取用户问题2、用户问题向量化3、检索向量数据库4、将检索结果和问题填充到pomp模板5、用最终获得的pomp调用LLM6、最终由LLM生成回复本篇完成文档加载与切割(pdf加载与切割)1、文档加载......
  • shell-函数
    一、无参函数[root@vm-paasscwyfy]#catfunNoParamReturn.sh#!/bin/bashdemo(){echo"无入参返参函数执行..."}#执行函数demo二、无参有返回值函数[root@vm-paasscwyfy]#catfunYesReturn.sh#!/bin/bashdemo(){read-p"请输入第一个数字:"number1re......
  • SystemVerilog -- 3.0 SystemVerilog Threads
    SystemVerilogThreadsWhatareSystemVerilogthreadsorprocesses?thread或process是作为单独实体执行的任何一段代码。在verilog中,每个initial和always块都作为单独的thread生成,这些threads从0time开始并行运行。block还会创建并运行的不同threads。forkjo......
  • QT: Expression:c >= -1 && c <= 255
    报错内容分析错误注意看报错位置位于isctype.cpp文件的Line:36我们打开isctype.cpp,其36行内容如下extern"C"int__cdecl_chvalidator(intconstc,intconstmask){_ASSERTE(c>=-1&&c<=255);return_chvalidator_l(nullptr,c,mask);}主要是第3行:_......
  • GRPC - grpcurl: interact with gRPC servers
    https://github.com/fullstorydev/grpcurl Install:goinstallgithub.com/fullstorydev/grpcurl/cmd/grpcurl@latest Addcodetoenableserverreflection:import"google.golang.org/grpc/reflection"reflection.Register(s)//sisagrpcserver......
  • CTFHUB-PHP-bypass_disable_functions
    很多可以蚁剑插件自己做,因为本来就是蚁剑实验室的靶场,这里有些也就用手工方法,方便掌握原理。LD_PRELOAD看题目一眼环境变量劫持。蚁剑可以连,但是终端命令全被ban了。访问/?ant=phpinfo();查看禁用函数:pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,......
  • Django - Rest Framework 框架
    目录DRF的安装与配置序列化类SerializerDRF的安装与配置为了简化API的开发过程,我们可以使用DjangoRestFramework框架实现API开发。使用框架开发不仅能减少代码冗余,还可以规范代码的编写格式,这对企业级开发来说很有必要,毕竟每个开发人员的编程风格存在一定的差异,开发规范可......
  • 黄河流域挑战赛WEB部分-gxngxngxn
    黄河流域公安院校挑战赛WEB部分-gxngxngxnmyfavorPythonpickle反序列话,开启debug,用报错importosimportpickleimportbase64classA():def__reduce__(self):return(exec,("raiseException(__import__('os').popen('catflag.txt').read())"......
  • CF1967D Long Way to be Non-decreasing 题解
    CF1967DLongWaytobeNon-decreasing题解知识点二分答案,基环树。题意分析给定一个包含\(n\)个元素的数组\(\{a_i\}\)和一个\(m\)个元素的数组\(\{b_i\}\)。定义每次操作为:在\(\{a_i\}\)中选择任意个数,假设某个选的数为\(a_i\),那么将其变为\(b_{a_i}\)......