位置: IT常识 - 正文

vue项目关于iframe嵌套的页面,在切换tab标签时会被重新刷新的问题处理方案(vue的iframe)

编辑:rootadmin
vue项目关于iframe嵌套的页面,在切换tab标签时会被重新刷新的问题处理方案 1.需求

推荐整理分享vue项目关于iframe嵌套的页面,在切换tab标签时会被重新刷新的问题处理方案(vue的iframe),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue中iframe如何传值,vue项目关于时间的js封装,vue frame,vuex iframe,vue iframe onload,vue的iframe,vue项目关于时间的js封装,vuex iframe,内容如对您有帮助,希望把文章链接给更多的朋友!

这两天工作中遇到一个这样的需求,切换tab标签时,要求对应的tab页面不刷新,但是项目中加入了一部分含有iframe的页面,在切换路由的过程中,如果使用keep-alive是达不到缓存ifram嵌套的页面效果的。

2.使用keep-alive缓存不了iframe界面的原因vue中的keep-alivevue项目关于iframe嵌套的页面,在切换tab标签时会被重新刷新的问题处理方案(vue的iframe)

1>.原理:vue 的缓存机制并不是直接存储 DOM 结构,而是将 DOM 节点抽象成了一个个 VNode节点。因此,Vue 的 keep-alive 缓存也是基于 VNode节点 而不是直接存储 DOM 节点。在需要渲染的时候从Vnode渲染到真实DOM上。

2>.参数:Keep-alive 组件提供了 include 和 exclude 两个属性,允许组件有条件的进行缓存。 include: 字符串或正则表达式。只有匹配的组件会被缓存。 exclude: 字符串或正则表达式。任何匹配的组件都不会被缓存。

3>.iframe中keep-alive机制失效原因:iframe页里的内容并不属于节点的信息,所以使用keep-alive依然会重新渲染iframe内的内容。而且iframe每一次渲染就相当于打开一个新的网页窗口,即使把节点保存下来,在渲染时iframe页还是刷新的。

3. vue中实现iframe内容缓存的思路保存iframe页里的节点信息我们很难去操作,这个时候我们就该想是否能在vue的route-view节点上动些手脚。我们可以在切换不含iframe的界面时使用vue路由,在切换含iframe页的界面时利用v-show来控制显示隐藏,使iframe的节点不被删除,以此来防止界面节点被重新更新,从而达到保存iframe节点数据的效果。4. 解决步骤:

综上所述,主要思路就是利用v-show去控制对应tab的iframe显示隐藏,使iframe的节点不被删除,以此来防止界面节点被重新更新,从而达到iframe页面的缓存效果。

iframe页面对应的路由配置:如下: { path: '', component: Layout, redirect: 'indexNew1', hidden: true, children: [ { path: 'indexNew1', component: (resolve) => require(['@/views/indexNew1'], resolve), meta: { title: ''} }, ] }, // 在这里需要找到Layout文件中对应的<router-view>

-根据上面的路由配置,找到了对应的layout组件中的router-view的引用,即appMain.vue页面

<template> <section class="app-main" :class="this.$route.path=='/tinyApp/tinyAppRate'?'app1':''"> <transition name="fade-transform" mode="out-in"> <keep-alive>// 这里加载的就是正常的vue页面 <router-view v-if="this.$route.path!=='/indexNew1'" /> </keep-alive> </transition> // 针对iframe嵌套的页面需要将封装的iframe组件引入,因为是多个嵌套的页面,所以这里需要循环生成 <iframe-index v-show="$route.query.id==item.id" v-for="item of tabSetList" :key="item.id" :newSrc="item.baseUrl" ></iframe-index> //这里的tabSetList数组就是你点击某菜单对应的此菜单信息的iframe相关属性 //因为tab有删除功能,所以不能用下标做key值 </section></template><script>// 引入iframe组件import iframeIndex from "@/views/indexNew1.vue";export default { name: 'AppMain', components:{ iframeIndex }, data(){ return{ tabList:[], tabSetList:[], } }, watch:{ $route(){ console.log('Rouer ------ ',this.$route) }, //这里是根据我项目的需求写的具体逻辑,不用参考 '$store.state.tagsView.sceneViews'(newVal){ this.tabList = [...newVal] this.tabSetList = this.tabList.filter((currentValue, currentIndex, selfArr) =>{ return selfArr.findIndex(x =>x.name === currentValue.name) === currentIndex });} },}</script>封装一个对应的iframe显示的组件// 这里只是放了部分代码 具体逻辑根据对应的需求添加即可<template> <div class="dashboard-editor-container"> <div style="width: 100%" class="itemflex-div"> <iframe :src="newSrc" class="iframemain" allowfullscreen="true" id="iframeId" ></iframe> </div> </div></template><script>export default { props:{ newSrc:{ type:String, default:'' } },};</script>综上所述,就是实现多iframe嵌套页面在切换tab时可以缓存对应页面的信息注意:因为tab一版包括删除功能,所以在循环iframe组件时对应的key值不能用数组下标,取一个唯一值即可,这里我取的是id
本文链接地址:https://www.jiuchutong.com/zhishi/283453.html 转载请保留说明!

上一篇:ImageDrive.exe进程什么文件 ImageDrive是什么进程(image driver)

下一篇:Win11 Beta 渠道首个预览版将在月底发布(windows11 beta渠道)

  • 苹果13pro防水吗(苹果手机13防水吗)

    苹果13pro防水吗(苹果手机13防水吗)

  • 抖音可能认识的人怎么查找(抖音可能认识的朋友)

    抖音可能认识的人怎么查找(抖音可能认识的朋友)

  • 网上可以查到结婚证电子版吗(网上可以查到结案证明吗)

    网上可以查到结婚证电子版吗(网上可以查到结案证明吗)

  • win10怎么改文件后缀名(Win10怎么改文件名)

    win10怎么改文件后缀名(Win10怎么改文件名)

  • 荣耀30s有没有90hz刷新率呢(荣耀30s有没有红外线遥控功能)

    荣耀30s有没有90hz刷新率呢(荣耀30s有没有红外线遥控功能)

  • 打开rar文件的软件(打开rar的电脑软件)

    打开rar文件的软件(打开rar的电脑软件)

  • 如何让群二维码失效(如何让群二维码固定)

    如何让群二维码失效(如何让群二维码固定)

  • Excel表格自动套用格式怎么设置(excel表格自动套用三维效果2)

    Excel表格自动套用格式怎么设置(excel表格自动套用三维效果2)

  • 微信零钱明细删除了还能恢复吗(微信零钱明细删除了怎么还有记录)

    微信零钱明细删除了还能恢复吗(微信零钱明细删除了怎么还有记录)

  • qq群文件可以查看是谁下载了吗(qq群文件查看访问记录)

    qq群文件可以查看是谁下载了吗(qq群文件查看访问记录)

  • 家里搜不到无线网名字(家里搜不到wi-fi)

    家里搜不到无线网名字(家里搜不到wi-fi)

  • 文件管理看不到sd卡(文件管理看不到qq文件)

    文件管理看不到sd卡(文件管理看不到qq文件)

  • 荣耀30pro是不是三星屏(荣耀30pro是不是巴龙5000)

    荣耀30pro是不是三星屏(荣耀30pro是不是巴龙5000)

  • 怎么把视频保存到相册(怎么把视频保存到电脑上)

    怎么把视频保存到相册(怎么把视频保存到电脑上)

  • win7重启快捷键是什么(win7快速重启)

    win7重启快捷键是什么(win7快速重启)

  • 怎样将文字方向变为竖行(如何把文字方向反过来)

    怎样将文字方向变为竖行(如何把文字方向反过来)

  • 京东是什么网站(京东商城是什么网站)

    京东是什么网站(京东商城是什么网站)

  • 怎样在图片上加上国旗(怎样在图片上加水印)

    怎样在图片上加上国旗(怎样在图片上加水印)

  • 小米手环3怎么连接手机(小米手环3怎么使用教程)

    小米手环3怎么连接手机(小米手环3怎么使用教程)

  • 耳机坏了一边能修吗(耳机坏了一边听不到怎么办)

    耳机坏了一边能修吗(耳机坏了一边听不到怎么办)

  • 华为碰一碰怎么使用(华为碰一碰怎么传文件)

    华为碰一碰怎么使用(华为碰一碰怎么传文件)

  • 滴滴怎么取消实名认证(滴滴怎么取消实名信息)

    滴滴怎么取消实名认证(滴滴怎么取消实名信息)

  • 电脑怎么注销qq号(电脑怎么注销QQ)

    电脑怎么注销qq号(电脑怎么注销QQ)

  • r软件怎么用(simmotor软件怎么用)

    r软件怎么用(simmotor软件怎么用)

  • 小米蓝牙耳机怎么关机(小米蓝牙耳机怎么调声音)

    小米蓝牙耳机怎么关机(小米蓝牙耳机怎么调声音)

  • Win10如何收到Win11推送 Win10收到Win11推送的方法(win10怎么接收手机热点)

    Win10如何收到Win11推送 Win10收到Win11推送的方法(win10怎么接收手机热点)

  • Windows 10无法打开CMD命令提示符窗口怎么办(windows10无法打开图片)

    Windows 10无法打开CMD命令提示符窗口怎么办(windows10无法打开图片)

  • 【vue2】vuex的安装、配置与使用(怎么安装vue2.0)

    【vue2】vuex的安装、配置与使用(怎么安装vue2.0)

  • pandas遍历dataframe的方法有哪些(pandas遍历某一列将字符串转换为列表)

    pandas遍历dataframe的方法有哪些(pandas遍历某一列将字符串转换为列表)

  • 金税盘锁死日期是16号,16号能清卡吗
  • 小规模纳税人所得税优惠政策2023
  • 建筑工程机械服务有限公司企业
  • 发票已经做账但要退款账不平咋办
  • 2021年超市发票税率是多少
  • 过桥过路费为什么这么贵
  • 报税软件费用可以退吗
  • 不动产服务具体有哪些
  • 设备使用率怎么计算公式
  • 个体户雇佣临时工
  • 金融资产减值准备可以转回吗
  • 准则依据
  • 企业股权转让留存收益可以扣除吗
  • 收取物业费不开发票举报电话
  • 租赁的设备伤人了谁的责任
  • 企业理财收入交哪些税
  • 材料发票不够怎么办
  • 检测费专用增值税的税票税率
  • 资产负债表在途物资属于存货吗
  • 信用减值损失属于什么会计要素
  • 高新企业国家补助收入怎么入账
  • 计提固定资产会计科目
  • 购买汽车分期付款利息怎么算
  • 销售库存商品结转的相关存货跌价准备冲减资产减值损失
  • 增加资产的会计科目
  • win10系统声音有杂音
  • 如何免费获取Win11企业版
  • 常见的电脑系统类型
  • bios boot设置
  • nclaunch.exe - nclaunch进程有什么用 是什么意思
  • 承租人对经营租赁和融资租赁会计处理方式
  • php教程100
  • 公司股权分红会交税吗
  • php官方微信接口有哪些
  • 企业发给员工的食堂补贴需要交个税吗
  • 独立核算分公司和非独立核算分公司
  • chrome怎么用谷歌
  • php采集源码
  • 开发费用怎么入账
  • php封装数据库连接
  • vue-cli(vue脚手架)超详细教程
  • mysql查找重复项
  • 简易计税适用什么类型企业
  • 公司没业务可以暂停营业吗
  • vue实现注册
  • 母公司给我们减工资
  • 小型生产加工企业税率
  • 金税盘维护费发票
  • 企业所得税是哪种
  • 会员代金券模板
  • 物业建车棚谁出钱
  • 私募基金如何做账
  • 增值税零税率发票怎么开
  • 长期待摊费用的最新账务处理
  • 企业获得小微企业补贴
  • 误餐补助标准国家规定
  • 什么情况下可以不交物业费
  • mysql 5.7.30安装
  • sql查询一条数据
  • mysql安装使用教程
  • windows2008r2修改密码
  • linux git教程
  • u盘装win8系统教程图解
  • linux route -n命令结果详解
  • linux内核驱动开发书籍
  • windows7装进u盘
  • win8计算机配置在哪
  • w10简易版
  • win10激活突然失效
  • windows7的开机启动项在哪里
  • js array数组
  • 浅析中国式现代化的理论价值与现实意义
  • angular.js
  • android使用so
  • 深圳营业执照办理咨询电话
  • 北京通个人认证
  • 客货两用车应如何运输
  • 税收筹划与避税的性质相同
  • 商铺收税多少
  • 印花税票在哪里可以查到
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设