声明:本文由我与葛先生无差异地合作完成。
需求背景:
有的项目需要采集用户在每个页面的停留时长(毫秒数)。采集工作由前端进行,然后发送给后端。
前端实现:
-
在
/router/index.js
中设定一个全局的前置导航守卫。 -
在
/router/index.js
中声明两个全局变量,分别为:startTime:为记录第一次进入路由组件或者进入上一个路由组件的时间。
currentTime:为记录每次路由进入的时间戳。
-
在前置导航守卫的 to 中进行逻辑处理。如果to存在,则说明跳转发生。
-
每次计算时间差时候,不要忘记再次初始化startTime。
实现代码:
let startTime = Date.now()
let currentTime
router