public下新建version.json文件定义版本
{ "version":"1.1.0" }
util下新建updateVersion.js
import axios from 'axios'; import { Loading } from 'element-ui'; var t1; var t2; export async function isNewVersion() { var randomNumber=Math.random() const url = `//${window.location.host}/version.json?id=${randomNumber}`; const res = await axios.get(url); const version = res.data.version; const localVersion = localStorage.getItem('version'); if (localVersion && localVersion != version) { localStorage.setItem('version', version); const hide=()=>{ //我这里使用的是 let loadingInstance =Loading.service({ fullscreen: true,text:'版本正在更新渲染加载中...'}); clearTimeout(t1) } t1=setTimeout(hide,2000) t2=setTimeout(()=>{ clearTimeout(t2) window.location.reload(); },3000) } else { localStorage.setItem('version', version); } }
router的afterEach的后置守卫中加版本查询,更新代码
rotuer/index.js import {isNewVersion} from '@/util/updateVersion.js' router.afterEach((to,from)=>{ isNewVersion() }) export default router
Vue发布新版本,强制更新代码的方式
最新推荐文章于 2024-04-26 18:17:09 发布
文章描述了一个JavaScript应用中检查新版本的过程。它创建了一个version.json文件来定义版本号,然后在util目录下的updateVersion.js文件中使用axios获取远程版本信息并与本地存储的版本进行比较。如果版本不同,应用会更新localStorage并重新加载页面以应用新版本。此过程在路由的afterEach钩子中触发,确保每次导航时都进行版本检查。
摘要由CSDN通过智能技术生成