当前位置:首页 > VUE

vue 如何实现onshow

2026-03-30 00:04:51VUE

Vue 实现 onShow 生命周期的方法

在 Vue 中,没有直接对应小程序或原生应用中的 onShow 生命周期钩子,但可以通过以下方式模拟类似功能。

使用 Vue 的 mounted 和 activated 钩子

对于普通组件,mounted 钩子在组件首次加载时触发。若组件被 <keep-alive> 包裹,activated 钩子会在组件再次显示时触发。

vue 如何实现onshow

export default {
  mounted() {
    this.handleShow();
  },
  activated() {
    this.handleShow();
  },
  methods: {
    handleShow() {
      console.log('组件显示时触发');
    }
  }
}

监听路由变化

通过 Vue Router 的导航守卫或 $route 变化,可以判断页面是否显示。

vue 如何实现onshow

export default {
  watch: {
    '$route'(to, from) {
      if (to.path === '/current-page') {
        this.handleShow();
      }
    }
  },
  methods: {
    handleShow() {
      console.log('页面显示时触发');
    }
  }
}

使用自定义事件

通过事件总线或 Vuex 触发显示事件。

// 事件总线方式
import Vue from 'vue';
const EventBus = new Vue();

export default {
  created() {
    EventBus.$on('page-show', this.handleShow);
  },
  beforeDestroy() {
    EventBus.$off('page-show', this.handleShow);
  },
  methods: {
    handleShow() {
      console.log('页面显示时触发');
    }
  }
}

结合 Visibility API

监听浏览器标签页的可见性变化。

export default {
  mounted() {
    document.addEventListener('visibilitychange', this.handleVisibilityChange);
  },
  beforeDestroy() {
    document.removeEventListener('visibilitychange', this.handleVisibilityChange);
  },
  methods: {
    handleVisibilityChange() {
      if (!document.hidden) {
        this.handleShow();
      }
    },
    handleShow() {
      console.log('页面重新可见时触发');
    }
  }
}

适用场景建议

  • 普通组件:使用 mountedactivated(配合 <keep-alive>)。
  • 页面级组件:结合 Vue Router 的路由监听。
  • 跨组件通信:通过事件总线或状态管理工具。
  • 浏览器标签页切换:使用 Visibility API。

根据具体需求选择合适的方法即可实现类似 onShow 的功能。

标签: 如何实现vue
分享给朋友:

相关文章

vue 实现jqslidedown

vue 实现jqslidedown

在 Vue 中实现类似 jQuery 的 slideDown 效果,可以通过 Vue 的过渡系统或 CSS 动画结合动态样式绑定来实现。以下是几种实现方式: 使用 Vue Transition 组件…

vue 实现直播

vue 实现直播

Vue 实现直播的基本方法 在Vue中实现直播功能,通常需要结合WebRTC、RTMP或HLS等技术。以下是几种常见的实现方式: 使用WebRTC实现实时直播 WebRTC适合低延迟的实时直播场景,…

vue实现route

vue实现route

Vue 路由实现方法 Vue 中实现路由通常使用 vue-router 库,这是 Vue 官方推荐的路由管理器。以下是具体实现步骤: 安装 vue-router 通过 npm 或 yarn 安装…

vue实现toggle

vue实现toggle

Vue 实现 Toggle 功能 在 Vue 中实现 toggle(切换)功能可以通过多种方式完成,以下是几种常见的方法: 使用 v-model 和 v-on 通过 v-model 绑定数据,结合…

vue实现treeselect

vue实现treeselect

Vue TreeSelect 实现方法 使用 Vue 实现 TreeSelect 组件可以通过以下几种方式完成,包括使用现成的第三方库或自行封装组件。 使用第三方库 推荐使用成熟的第三方 TreeS…

vue环境实现

vue环境实现

Vue 环境搭建 安装 Node.js 和 npm Node.js 是运行 Vue 的基础环境,npm 是包管理工具。从 Node.js 官网 下载并安装最新稳定版本。安装完成后,在终端运行以下命令验…