当前位置: 首页 > news >正文

中国建设工程招聘信息网站电商运营方案

中国建设工程招聘信息网站,电商运营方案,营销型网站建设调查表,如何做网站导航最近做了个项目#xff0c;其中有个页面是由 iframe 嵌套了一个另外的页面#xff0c;在运行的过程中发现 KeepAlive 并不生效#xff0c;每次切换路由都会触发 iframe 页面的重新渲染#xff0c;代码如下#xff1a; router-view v-slot{ Component }其中有个页面是由 iframe 嵌套了一个另外的页面在运行的过程中发现 KeepAlive 并不生效每次切换路由都会触发 iframe 页面的重新渲染代码如下 router-view v-slot{ Component }keep-alive :includekeepAliveListcomponent :isComponent/component/keep-alive/router-view看起来并没有什么问题并且其他非 iframe 实现的页面都是可以被缓存的因此可以推断问题出在 iframe 的实现上。 我们先了解下 KeepAlive KeepAlive 熟悉的可跳过本节 被 KeepAlive 包裹的组件不是真的卸载而是从原来的容器搬运到另外一个隐藏容器中实现“假卸载” 当被搬运的容器需要再次挂载时应该把组件从隐藏容器再搬运到原容器这个过程对应到组件的生命周期就是 activated 和 deactivated。 keepAlive 是需要渲染器支持的在执行 mountComponent 时如果发现是 __isKeepAlive 组件那么会在上下文注入 move 方法。 function mountComponent(vnode, container, anchor) {/**... */const instance {/** ... */state,props: shallowReactive(props),// KeepAlive 实例独有keepAliveCtx: null};const isKeepAlive vnode.__isKeepAlive;if (isKeepAlive) {instance.keepAliveCtx {move(vnode, container, anchor) {insert(vnode.component.subTree.el, container, anchor);},createElement};} }原因 通过上面的了解我们知道KeepAlive 缓存的是 vnode 节点vnode 上面会有对应的真实DOM。组件“销毁”时会将真实 DOM 移动到“隐藏容器”中组件重新“渲染”时会从 vnode 上取到真实 DOM再重新插入到页面中。这样对普通元素是没有影响的但是 iframe 很特别当其插入到页面时会重新加载这是浏览器特性与 Vue 无关。 解决方案 思路路由第一次加载时将 iframe 渲染到页面中路由切换时通过 v-show 改变显/隐。 在路由注册时将 component 赋值为一个空组件 {path: /chathub,name: chathub,component: { render() {} }, // 这里写 null 时控制台会出 warning提示缺少 render 函数},在 router-view 处渲染 iframe通过 v-show 来控制显示隐藏 ChatHub v-ifchatHubVisited v-showisChatHubPage/ChatHubrouter-view v-slot{ Component }keep-alive :includekeepAliveListcomponent :isComponent/component/keep-alive/router-view监听路由的变化改变 iframe 的显/隐 const isChatHubPage ref(false) // 这里是个优化想的是只有页面访问过该路由才渲染没访问过就不渲染该组件 const chatHubVisited ref(false) watch(() routes.path,(value) {if (value /chathub) {chatHubVisited.value trueisChatHubPage.value true} else {isChatHubPage.value false}},{immediate: true} )ChatHub.vue组件代码有单个或者多个iframe情况 templatediv classiframe-containeriframev-for(item, index) in iframeListv-showshowIframe(item, index):keyitem.url:srcitem.urlframeborder0/iframe/div /template script langts setup export default {name: ChatHub, }; import { ref, reactive } from vue; import { useRoute, useRouter } from vue-router; const route useRoute();const iframeList reactive([{name: 1, url: https://xxx},{name: 2, url: https://yyy} ])// 是否显示 const showIframe (item, index) {if (route.query.url item.url) {return true;} else {return false;} };/script
http://www.pierceye.com/news/184294/

相关文章:

  • 白山网站设计网站首页鲁大师
  • 网站怎样和首页做链接地址七星彩的网站怎么做的
  • 深圳h5模板建站wordpress 整合ucenter
  • 企业网站策划书下载google adsense
  • 安徽网站建设公司排名竞价托管就选微竞价
  • 笑话小网站模板html做移动网站快速排
  • c2c电子商务网站有哪些电商设计师和美工有什么区别
  • 长春电商网站建设价格低公司网站过期未续费会怎样
  • 农业综合管理网站建设做网站前期工作
  • 域名更换网站网站维护工作内容
  • 网站水印设置作教程长沙求职网招聘网
  • 八年级微机网站怎么做wordpress 链接转换
  • ppt做的模板下载网站有哪些内容wordpress 4.5.3中
  • 网站开发需求文档prd模板iis wordpress 404
  • 灰色链网站建设偃师建网站那家公司好
  • 文化网站前置审批网站运营系统
  • 现在做网站用什么学校网站的建设需求
  • 网页制作与网站建设技术大全 pdfhtml5移动端网站开发教程
  • 做任务可以给钱的网站php响应式网站模板下载
  • 平面素材设计网站东莞房价2023年最新房价走势
  • 做一个网站建设需要多少钱天津企业网站排名优化
  • 有关网站开发的论文网站建设哪公司
  • wordpress网站500导航 网站 分析
  • 软件网站开发市场前景试论述网上商城的推广技巧
  • 海洋生态文明建设的网站名廊坊网站建设电话
  • 做外贸在哪个网站比较好视频网站搭建源码
  • 网站代码优化视频教程动画制作专业大学排名
  • 安阳网站推广优化网站导航条背景图片
  • 静态网站需要数据库吗广州近期流行的传染病
  • 如何做国外的网站页面设计感想