当前位置:首页 > VUE

vue实现页面停留时长

2026-02-21 22:13:11VUE

Vue 实现页面停留时长统计

使用生命周期钩子和计时器

在 Vue 组件中,可以通过 mountedbeforeDestroy 钩子来记录页面的进入和离开时间。创建一个计时器来计算停留时长。

export default {
  data() {
    return {
      enterTime: null,
      leaveTime: null,
      duration: 0,
      timer: null
    }
  },
  mounted() {
    this.enterTime = new Date()
    this.timer = setInterval(() => {
      this.duration = Math.floor((new Date() - this.enterTime) / 1000)
    }, 1000)
  },
  beforeDestroy() {
    clearInterval(this.timer)
    this.leaveTime = new Date()
    const totalDuration = Math.floor((this.leaveTime - this.enterTime) / 1000)
    console.log(`页面停留时长:${totalDuration}秒`)
  }
}

使用路由守卫全局统计

在 Vue Router 的全局守卫中统计页面停留时长,适用于需要全局监控的场景。

import router from './router'

let startTime
router.beforeEach((to, from, next) => {
  if (from.name) {
    const endTime = new Date()
    const duration = Math.floor((endTime - startTime) / 1000)
    console.log(`从 ${from.name} 离开,停留时长:${duration}秒`)
  }
  startTime = new Date()
  next()
})

结合本地存储或 API 上报

将停留时长数据保存到本地存储或通过 API 上报到服务器,便于后续分析。

export default {
  methods: {
    reportDuration(duration) {
      localStorage.setItem('last_page_duration', duration)
      // 或调用 API 上报
      // axios.post('/api/track', { duration })
    }
  },
  beforeDestroy() {
    const totalDuration = Math.floor((new Date() - this.enterTime) / 1000)
    this.reportDuration(totalDuration)
  }
}

使用第三方库

如果需要更复杂的功能,可以考虑使用专门的用户行为分析库,如 vue-analyticsmatomo

import VueAnalytics from 'vue-analytics'

Vue.use(VueAnalytics, {
  id: 'UA-XXX-X',
  router
})

通过以上方法,可以灵活地实现页面停留时长的统计和上报。

vue实现页面停留时长

标签: 时长页面
分享给朋友:

相关文章

vue实现关闭页面

vue实现关闭页面

关闭当前页面的方法 在Vue中关闭当前页面可以通过JavaScript的window.close()方法实现。该方法会关闭当前浏览器窗口或标签页。 methods: { closePage()…

css制作音乐盒页面

css制作音乐盒页面

音乐盒页面设计思路 音乐盒页面通常需要结合音频播放功能与视觉设计。以下是实现一个基础音乐盒页面的关键步骤。 HTML结构搭建 基础HTML需包含音频播放器控件和播放列表: <!DOC…

vue实现组织架构页面

vue实现组织架构页面

Vue 实现组织架构页面 数据准备 组织架构通常以树形结构展示,需要准备嵌套的节点数据。例如: data() { return { orgData: { id: 1,…

h5实现页面跳转

h5实现页面跳转

使用 <a> 标签实现跳转 通过 HTML5 的 <a> 标签实现页面跳转是最基础的方法,适用于静态页面或简单的导航需求。示例代码如下: <a href="targe…

h5实现页面切换

h5实现页面切换

h5实现页面切换的方法 在H5中实现页面切换可以通过多种方式完成,包括使用原生HTML链接、JavaScript动态加载、框架路由等。以下是几种常见的方法: 使用原生HTML的<a>标签…

vue实现页面刻度

vue实现页面刻度

实现页面刻度的基本思路 在Vue中实现页面刻度通常用于展示进度、测量或标记特定位置。可以通过动态计算和渲染刻度元素来实现,结合CSS样式控制显示效果。 使用动态渲染刻度线 通过v-for指令动态生成…