Vue3实现优雅的前端版本更新提示

背景

在前端项目开发中,当我们发布了新版本后,需要及时通知用户刷新页面以获取最新代码。本文将介绍一种优雅的实现方案。

实现原理

  1. 在项目根目录维护一个version.json文件,记录当前版本号
  2. 前端定期请求version.json检查版本
  3. 对比本地存储的版本号,如有更新则提示用户

核心代码实现

1. 创建version.json

复制代码
{
"version": "1.0.0"
}

2. Vue组件实现

复制代码
import { ref, onMounted } from 'vue'
import { ElNotification } from 'element-plus'
// 检查版本更新
const checkVersion = async () => {
try {
// 添加时间戳防止缓存
const response = await fetch('/version.json?t=' + new Date().getTime())
const data = await response.json()
const localVersion = localStorage.getItem('app_version')
if (localVersion && localVersion !== data.version) {
showUpdateNotification()
}
localStorage.setItem('app_version', data.version)
} catch (error) {
console.error('检查版本更新失败:', error)
}
}
// 显示更新通知
const showUpdateNotification = () => {
ElNotification({
title: '系统更新提示',
message: '系统已更新,请刷新页面获取最新版本',
type: 'warning',
duration: 0,
onClick: () => window.location.reload()
})
}
// 组件挂载时初始化
onMounted(() => {
localStorage.removeItem('app_version') // 清除本地版本号
checkVersion() // 初始检查
setInterval(checkVersion, 1 60 1000) // 每分钟检查一次
})

实现要点

  1. 防止缓存: 请求version.json时添加时间戳参数

  2. 定时检查: 使用setInterval定期检查版本更新

  3. 用户体验:

    • 通知框持续显示(duration: 0)
    • 点击通知可直接刷新
    • 友好的提示文案
  4. 版本号存储: 使用localStorage存储版本号,便于对比

优化建议

  1. 可以根据业务需求调整检查频率

  2. 可以添加更新日志展示

  3. 对于正在编辑的内容,建议提示用户先保存

  4. 可以添加强制更新的机制

相关推荐
usdoc文档预览43 分钟前
USDOC系列之PPT文件在线编辑-VUE前端实现在线浏览器在线编辑PPT文档
前端·vue.js·编辑器·office365·ppt在线编辑·office文件在线编辑·文件在线编辑
用户2705077725241 小时前
Agent 调工具卡住?3 种超时与取消策略实测对比
前端
LuHang2 小时前
我一行代码没写,把领导派的活做成了公司内部系统😭
前端
明月_清风2 小时前
Meta 开源了一个 AI Native 组件库:Astryx,150+ React 组件,专为 AI Agent 而设计
前端·人工智能·ai编程
用户850869276152 小时前
秒杀系统中 Shell 脚本并发控制 Bug:究竟哪里出了
前端
炫酷的大高个5 小时前
6 亿播放的闪身步,我用前端算出 15 倍重心差
前端·javascript
不可能片场5 小时前
内容运营自动化 配图折行别把词切两半
前端·electron
Lank_M5 小时前
HEIC转JPG统一转sRGB,P3高饱和色就回不来了
前端
补码缩写5 小时前
sharp默认转JPG颜色没错,ICC和EXIF却全没了
前端
用户7783366132115 小时前
SerpBase AI Overview 引用卡片:React 组件实战
前端