vue哪些情况称作“销毁组件”

在 Vue.js 中,组件被销毁是指组件从 DOM 中被移除,并且相关的资源和引用被清理。以下是组件被销毁的几种常见情况:

1. 动态组件切换

当使用 v-ifv-for 等指令动态切换组件时,组件会被销毁。例如:

vue 复制代码
<template>
  <div>
    <button @click="showComponent = !showComponent">
      切换组件
    </button>
    <component-a v-if="showComponent" />
  </div>
</template>

<script>
import ComponentA from './ComponentA.vue';

export default {
  components: {
    ComponentA
  },
  data() {
    return {
      showComponent: true
    };
  }
};
</script>
  • showComponentfalse 时,ComponentA 会被销毁,其 beforeUnmount 钩子会被触发。

2. 路由切换

当使用 Vue Router 进行页面跳转时,当前路由组件会被销毁。例如:

vue 复制代码
<template>
  <div>
    <router-link to="/home">Home</router-link>
    <router-link to="/about">About</router-link>
    <router-view />
  </div>
</template>
  • 当从 /home 跳转到 /about 时,/home 对应的组件会被销毁,其 beforeUnmount 钩子会被触发。

3. 整个应用卸载

当整个 Vue 应用被卸载时,所有组件都会被销毁。例如:

javascript 复制代码
const app = Vue.createApp(App);
const vm = app.mount('#app');

// 卸载整个应用
vm.unmount();
  • 调用 vm.unmount() 会触发所有组件的 beforeUnmount 钩子。

4. 关闭页面

当用户关闭浏览器标签页或刷新页面时,整个 Vue 应用会被销毁,所有组件的 beforeUnmount 钩子都会被触发。

5. 跳转页面

  • 单页面应用(SPA):如果使用 Vue Router 进行页面跳转,当前页面的组件会被销毁。
  • 传统页面跳转 :如果使用 <a> 标签或 window.location.href 进行页面跳转,浏览器会加载新页面,旧页面的所有组件都会被销毁。

总结

组件被销毁的情况包括:

  • 动态组件切换(如 v-ifv-for)。
  • 路由切换(使用 Vue Router)。
  • 整个应用卸载。
  • 关闭页面或刷新页面。
  • 跳转页面(无论是 SPA 还是传统页面跳转)。

在这些情况下,Vue 会自动调用组件的 beforeUnmountunmounted 生命周期钩子,用于执行清理操作。

相关推荐
未脱发程序员4 分钟前
【前端】每日一道面试题3:如何实现一个基于CSS Grid的12列自适应布局?
前端·css
三天不学习8 分钟前
Visual Studio Code 前端项目开发规范合集【推荐插件】
前端·ide·vscode
爱分享的程序猿-Clark31 分钟前
【前端分享】CSS实现3种翻页效果类型,附源码!
前端·css
Code哈哈笑1 小时前
【图书管理系统】深度讲解:图书列表展示的后端实现、高内聚低耦合的应用、前端代码讲解
java·前端·数据库·spring boot·后端
无名之逆1 小时前
Hyperlane: Unleash the Power of Rust for High-Performance Web Services
java·开发语言·前端·后端·http·rust·web
数据潜水员1 小时前
`待办事项css样式
前端·css·css3
_处女座程序员的日常1 小时前
css媒体查询及css变量
前端·css·媒体
GanGuaGua3 小时前
CSS:盒子模型
开发语言·前端·css·html
GalenWu9 小时前
对象转换为 JSON 字符串(或反向解析)
前端·javascript·微信小程序·json
GUIQU.10 小时前
【Vue】微前端架构与Vue(qiankun、Micro-App)
前端·vue.js·架构