位置: 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渠道)

  • 抖音苹果充值为什么跟安卓比例不一样(抖音苹果充值为什么是1:7)

    抖音苹果充值为什么跟安卓比例不一样(抖音苹果充值为什么是1:7)

  • iwatch不连手机能用吗(iwatch不连手机能打电话吗)

    iwatch不连手机能用吗(iwatch不连手机能打电话吗)

  • 电脑没有word文档怎么办(电脑没有word文档怎么打开文件)

    电脑没有word文档怎么办(电脑没有word文档怎么打开文件)

  • 苹果手机用无线网络特别慢怎么回事(苹果手机用无线充电器发热正常吗)

    苹果手机用无线网络特别慢怎么回事(苹果手机用无线充电器发热正常吗)

  • 超星直播能看到学生吗(超星直播能看到学生屏幕)

    超星直播能看到学生吗(超星直播能看到学生屏幕)

  • oppoa11耗电快(oppoa11x耗电快)

    oppoa11耗电快(oppoa11x耗电快)

  • MENU是什么意思(menu是什么意思显示器上的)

    MENU是什么意思(menu是什么意思显示器上的)

  • 抖音删除作品赞还在吗(抖音删除作品赞还会在主页显示吗)

    抖音删除作品赞还在吗(抖音删除作品赞还会在主页显示吗)

  • 华为P30pro双卡怎么放(华为p30pro双卡怎么设置网络)

    华为P30pro双卡怎么放(华为p30pro双卡怎么设置网络)

  • b站卡超过40g还免流吗(b站卡超过40g怎么计费)

    b站卡超过40g还免流吗(b站卡超过40g怎么计费)

  • 微信视频听不到铃声(微信视频听不到铃声是怎么回事)

    微信视频听不到铃声(微信视频听不到铃声是怎么回事)

  • 抖音点赞的视频怎么没了(抖音点赞的视频在喜欢里看不到)

    抖音点赞的视频怎么没了(抖音点赞的视频在喜欢里看不到)

  • 小米5和小米6有何区别(小米5和小米6有什么不同)

    小米5和小米6有何区别(小米5和小米6有什么不同)

  • 苹果6s plus充不进去电怎么回事(苹果6s plus充不上电)

    苹果6s plus充不进去电怎么回事(苹果6s plus充不上电)

  • 微信怎么找回账单(微信怎么找回账号)

    微信怎么找回账单(微信怎么找回账号)

  • 荣耀20s怎么定位手机(荣耀20s怎么定位对方手机)

    荣耀20s怎么定位手机(荣耀20s怎么定位对方手机)

  • vsco注册了要收费吗(vsco注册账号)

    vsco注册了要收费吗(vsco注册账号)

  • iphon超取景拍摄怎么拍(iphone超取景)

    iphon超取景拍摄怎么拍(iphone超取景)

  • oppo怎么关闭breeno(oppo怎么关闭breeno识屏)

    oppo怎么关闭breeno(oppo怎么关闭breeno识屏)

  • 取消断字,换行设置(段落设置取消断字,换行设置为怎么设置)

    取消断字,换行设置(段落设置取消断字,换行设置为怎么设置)

  • 陌陌收礼物在哪看(陌陌礼物怎么收)

    陌陌收礼物在哪看(陌陌礼物怎么收)

  • 华为p20可以开空调吗(华为p20pro可不可以开空调)

    华为p20可以开空调吗(华为p20pro可不可以开空调)

  • 华为nova3怎样长截屏(华为nova3e怎么长截屏)

    华为nova3怎样长截屏(华为nova3e怎么长截屏)

  • 苹果感应器在哪里设置(苹果感应器在哪里关)

    苹果感应器在哪里设置(苹果感应器在哪里关)

  • Win10系统通知中心总弹出广告怎么永久关闭?(win10系统通知中心在哪)

    Win10系统通知中心总弹出广告怎么永久关闭?(win10系统通知中心在哪)

  • 个人开具服务费发票税率
  • 购入交通运输设备计入什么科目
  • 公司每年需要交钱吗
  • 应收账款待转销和应交税费待转销
  • 收到短期贷款会计分录
  • 企业所得税税率有几个档次
  • 增值税进项税转出所得税调整吗
  • 零售环节销售金额标准
  • 产成品或自制半成品核算方法有哪些
  • 发票已开款项未入账有什么影响?
  • 小微企业所得税优惠政策2023
  • 营改增怎么抵扣
  • 哪些违约金可以退回
  • 企业成本费用包括哪些
  • 以公允价值计量是什么意思
  • 房地产公司未售房产出租账务处理
  • 一般劳务报酬和其他劳务报酬的区别
  • 亏损计提递延
  • 取得进项税发票分录
  • 管理费用处理方法包括
  • tkinter美观界面
  • php加载
  • win7怎么添加设备
  • PHP:Memcached::quit()的用法_Memcached类
  • 软件入无形资产金额
  • 子公司开票给母公司,冲减利润,怎么避免税务风险
  • vue的iframe
  • 分公司可以给总公司开发票么
  • 企业清算时
  • 跨年费用入账
  • 我已经用尽了洪荒之力漫画表情
  • thinkphp钩子场景
  • 自费出版违法吗
  • 社保公司承担部分计入哪个科目
  • 哪些收入需要缴纳个人所得税
  • 中付支付科技有限公司备付金
  • 企业注销了,存钱怎么办
  • 劳务报酬的增值税起征点
  • 出售无形资产净损益
  • 零星采购入什么科目
  • 简易计税差额抵扣
  • 存货盘点的方法有哪些
  • 个体工商户营业执照申请流程
  • 限制性股票应纳税额的确定
  • 技术报酬金是什么意思
  • 简易计税项目税率
  • 员工报销医药费怎么做会计分录
  • 并购 投资
  • 销售货物并提供安装服务是混合销售吗
  • 建筑行业异地预缴税率
  • 外购材料的核算方法有
  • 专项资金补助经费如何入账
  • 企业申请支付宝账号步骤
  • 收到保险公司的赔款怎么做账
  • 主营业务成本的增加在哪一方
  • 美国支票上的收款人地址不对怎么办
  • 企业会计账簿设计的原则
  • 零申报必须会计吗?自己可以操作吗
  • sqlserver存储过程返回多个结果集
  • 2021win10激活
  • Ubuntu Server 11.04安装GNOME 3的方法
  • 怎么把u盘两个盘合并到一起
  • win8怎么卸载应用程序
  • u盘怎么安装win7镜像文件
  • win7开机没反应怎么办
  • win10系统如何
  • rpm的安装
  • ztree默认选中
  • cocos2dx 教程
  • opengl 位图
  • jquery 动态加载js
  • nodejs实战教程
  • python怎么运作
  • jquery?
  • android新手入门
  • unity unite
  • javascript面向对象编程指南第三版
  • 北京税务分所怎么样啊
  • 图像信息采集照片
  • 社保信息怎么补全
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设