当前位置:首页 > VUE

vue 如何实现onshow

2026-03-30 00:04:51VUE

Vue 实现 onShow 生命周期的方法

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

使用 Vue 的 mounted 和 activated 钩子

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

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

监听路由变化

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

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

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

vue 如何实现onshow

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实现图册

vue实现图册

Vue实现图册功能 在Vue中实现图册功能通常涉及图片展示、切换、缩放等交互效果。以下是常见的实现方法和关键代码示例: 基础图册组件结构 使用Vue单文件组件构建基础结构: <templat…

vue实现selectable

vue实现selectable

Vue 实现可选择的 Select 组件 在 Vue 中实现一个可选择的 Select 组件,可以通过以下几种方式: 使用原生 HTML select 元素 <template> &…

vue实现开关

vue实现开关

Vue 实现开关组件的方法 使用原生HTML和Vue数据绑定 通过v-model绑定复选框的checked状态,结合CSS样式实现开关效果: <template> <label…

vue 实现平面

vue 实现平面

Vue 实现平面的方法 在 Vue 中实现平面效果通常涉及 CSS 样式、UI 框架或自定义组件的使用。以下是几种常见方法: 使用 CSS 样式 通过 Vue 的样式绑定或 scoped CSS 为…

vue 实现协同

vue 实现协同

Vue 实现协同编辑的方案 协同编辑指多个用户同时编辑同一文档并实时同步更改。Vue 结合相关库和技术可轻松实现该功能。 使用 WebSocket 实现实时通信 WebSocket 提供全双工通信,…

vue实现动态禁用

vue实现动态禁用

动态禁用表单元素或按钮 在Vue中实现动态禁用功能通常通过v-bind:disabled(或简写为:disabled)绑定一个响应式变量实现。当变量值为true时,元素被禁用;为false时启用。…