vue 路由嵌入iframe 刷新保留当前页面

您所在的位置:网站首页 iframe不刷新原页面 vue 路由嵌入iframe 刷新保留当前页面

vue 路由嵌入iframe 刷新保留当前页面

2023-12-31 01:48| 来源: 网络整理| 查看: 265

最近在研发过程中,遇到了一个优化,vue项目嵌套在另外一个vue项目的iframe中,外层vue的iframe刷新,iframe中的vue项目希望可以停留在你当前操作的页面,而不是刷回到一开始的iframe里src路径

当开始听到这个优化点的时候,一上来有点懵,初步想法是存在localstroage里面,每次页面刷新的时候,去缓存里面取值,然后在push

但是这样操作有问题,localstroage关闭浏览器,不手动清除,数据还会存在,而且,web页面判断浏览器刷新的动作,用网上介绍的方法都会有各种各样的问题,所以,后来利用了vue的全局钩子以及watch监听路由信息做了最后的处理。

下面是代码实现:

 app.vue

app.vue mounted () { window.addEventListener('beforeunload', e => { sessionStorage.setItem('beforeunload', 1); }); // 监听页面刷新 if(sessionStorage.getItem('beforeunload') == 1){ let name = sessionStorage.getItem("routerName"); if (name) { this.$nextTick(function() { this.$router.push({ path: name }); }); } } }, watch: { $route(to,from){ if(from.name == null){ sessionStorage.removeItem('beforeunload'); } } },

路由index.js

router/index.js router.beforeEach((to, from, next) => { if (from.name != null) sessionStorage.setItem("routerName", to.fullPath); next(); });

最终,当前vue项目的iframe对应刷新的时候,路由保持当前页面,当外层vue项目tab切换的时候,路由又会重置到最原始的嵌入页面。

如果你有更好的实现方式,欢迎与我多多交流。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3