首页 > 其他分享 >介绍vue3的钩子函数activated和deactivated使用场景

介绍vue3的钩子函数activated和deactivated使用场景

时间:2023-06-15 09:00:26浏览次数:35  
标签:函数 deactivated vue3 activated state 钩子 组件 onActivated

activated和deactivated是Vue3中的两个生命周期钩子函数。

activated钩子函数在组件被激活时调用,通常用于恢复组件的状态或执行一些初始化操作。例如,如果一个组件被从路由中激活,你可能需要在该组件被激活时从本地存储中加载一些数据。

下面是一个示例代码:

<template>  
  <div>  
    <button @click="loadData">Load Data</button>  
    <ul>  
      <li v-for="item in data" :key="item.id">{{ item.name }}</li>  
    </ul>  
  </div>  
</template>  
  
<script>  
import { reactive } from 'vue'  
import axios from 'axios'  
  
export default {  
  setup() {  
    const state = reactive({  
      data: [],  
      loading: false,  
      error: null,  
    })  
  
    const loadData = () => {  
      state.loading = true  
      state.error = null  
      axios.get('/api/data').then(response => {  
        state.data = response.data  
        state.loading = false  
      }).catch(error => {  
        state.loading = false  
        state.error = error.message  
      })  
    }  
  
    const onActivated = () => {  
      loadData() // 加载数据并初始化组件状态  
    }  
  
    const onDeactivated = () => {  
      // 清理组件状态或取消异步请求等操作  
    }  
  
    return {  
      state,  
      loadData,  
      onActivated,  
      onDeactivated,  
    }  
  },  
  mounted() {  
    this.onActivated() // 在组件挂载时激活该组件,调用onActivated钩子函数初始化组件状态  
  },  
  activated() {  
    return { onActivated } // 在组件被激活时调用onActivated钩子函数,恢复组件状态或执行一些初始化操作  
  },  
  deactivated() {  
    return { onDeactivated } // 在组件被停用时调用onDeactivated钩子函数,清理组件状态或取消异步请求等操作  
  },  
}  
</script>

在上面的示例代码中,当用户点击“Load Data”按钮时,会触发loadData函数,从服务器获取数据并更新组件状态。当用户访问其他路由时,该组件会被停用,此时会调用onDeactivated钩子函数清理组件状态或取消异步请求等操作。当用户再次访问该组件所在的路由时,该组件会被激活,此时会调用onActivated钩子函数恢复组件状态或执行一些初始化操作。

标签:函数,deactivated,vue3,activated,state,钩子,组件,onActivated
From: https://www.cnblogs.com/lan80/p/17481864.html

相关文章

  • vue3 css ts 双重弹跳加载动画
    /双重弹跳加载动画*/效果如同页面https://codepen.io/yjx123/pen/zYMvbML<ahref="javascript:void(0)"@click="startLoading"><inline-svg:src="getAssetPath(iconPath)"></inline-svg><div:style="{......
  • Vue3中循环任务优化方案
    需求在使用循环任务时,往往需要使用到setInterval方法。其接受三个参数,分别是1.具体执行的函数2.执行时间间隔3.传递个函数的参数,并返回一个id,后续可以使用这个id来停止循环的执行。具体的使用可以查阅MDN。在实际开发中,很容易重复创建相同的interval实例,进行反复的执行,并且在......
  • Vue3
    目录一vue3介绍1Vue3的变化1.1性能的提升1.2源码的升级1.3拥抱TypeScript1.4新的特性2组合式api和配置项api3vue3之vue实例4创建vue3项目4.1使用vue-cli创建4.2使用vite创建5setup6响应式6.1ref函数6.2reactive函数7reactive与ref对比8计算,监听属性8.1监......
  • vue3进阶——组件基础
    组件允许我们将UI划分为独立的、可重用的部分,并且可以对每个部分进行单独的思考。在实际应用中,组件常常被组织成层层嵌套的树状结构,这和我们嵌套HTML元素的方式类似,Vue实现了自己的组件模型,使我们可以在每个组件内封装自定义内容与逻辑。定义组件当使用构建步骤时,我们一般......
  • vue3之setup
    一、Vue3中script的三种写法Vue3新增了一个叫做组合式api的东西,英文名叫CompositionAPI。因此Vue3的script现在支持三种写法。1)最基本的Vue2写法setup()属性<scriptsetup>无论是代码行数,还是代码的精简度,<scriptsetup>的方式是最简单的形式。如果......
  • 6.12 vue3的学习
    1.创建vue3项目:在cmd中首先找到需要保存的路径,输入vuecreate+vue项目的取名,和之前创建vue2是一样的进行如下选择 2.vite创建vue3的方式在cmd中首先输入npminitvue@latest 3.安装依赖和运行依赖#安装依赖npminstall##运行依赖npmrundev#4.vue2创建app实......
  • vue3
    目录一Vue3的变化1.性能的提升2、源码的升级3.拥抱TypeScript4.新的特性1.CompositionAPI(组合API)2.新的内置组件3.其他改变5组合式API和配置项API5.1OptionsAPI存在的问题5.2CompositionAPI的优势6项目分析分析文件目录main.jsVue2项目的main.js我们再来看看Vue3项目中......
  • Vue3基本功能实现
    vue3介绍#Vue3的变化#1.性能的提升 打包大小减少41%初次渲染快55%,更新渲染快133%内存减少54%#2.源码的升级 使用Proxy代替defineProperty实现响应式重写虚拟DOM的实现和Tree-Shaking#3.拥抱TypeScript Vue3可以更好的支持TypeScript......
  • uniapp vue3 setup + 云开发开发个人小程序
    最近使用uniappvue3setup+云开发开发了个人小程序,设计使用figma软件,看下成品截图吧(可以直接微信搜索【识光】小程序体验,或者最底部有码可以直接扫) ......
  • Vue3.js第一部分【核心篇】
    Vue3Vue核心Vue3快速上手​1.Vue3简介2020年9月18日,Vue.js发布3.0版本,代号:OnePiece(海贼王)耗时2年多、​2600+次提交、30+个RFC、600+次PR、99位贡献者github上的tags地址:​https://github.com/vuejs/vue-next/releases/tag/v3.0.0国内官网地址:​Vue.js-渐进式JavaScr......