vue中通过iframe方式加载本地的vue页面的解决方法

 更新时间:2023年06月14日 09:03:32   作者:陆康永  
这篇文章主要给大家介绍了在vue中如何通过iframe方式加载本地的vue页面的解决方法,文中有详细的解决流程,需要的朋友可以参考下

这个需求一般很少能遇到,只要说去了iframe,很多人就会唾弃。

但是有时候的确无法避免使用它,当iframe的特性带来的优势远远高于自己用div模拟的时候

啥时候需要用到iframe加载本地的vue文件呢

  • 我在写一个demo,我需要demo效果模拟在手机中运行。
  • 同时我本地代码编辑的时候iframe的内容也要同时更新,否者会很影响开发效率。

一开始

我在项目目录新建了个iframe.html文件,然后在vue文件的html标签里面新增个iframe并且把src写成

/iframe.html,然后通过BroadcastChannel来和主页面通讯

这个看起来没什么问题

问题来了

  • 如何导入原来的jsx或者.vue文件呢?
  • 我们编辑jsx或者.vue文件的时候,如何让iframe的内容实时更新呢

上面的实现方式无解

iframe严重依赖了src这个属性,src必须指向一个有效的网页地址

网页地址?vue不是也有路由么?

拿我们写个路由,这个路由的页面专门存放iframe要显示的内容,那不就可以了

说干就干

路由

{
        path: "/iframe",
        name: "iframe",
        component: DemoIframe,
    },

DemoIframe是存放iframe内容的页面

在另外个vue页面添加如下内容

完美,即使部署到线上也是没有问题的

是想后的效果如下

麻烦的地方

  • 是多了一个路由和一个页面
  • 无法使用pinia这种状态管理直接iframe与主窗口的通讯(注可通过localstore和pinia的插件来实现iframe和主页面的的pinia通讯),因为iframe是沙箱,是个独立的窗口,调试工具会看到如下,有2个应用

  • 如何解决两个app 2份状态管理数据的问题呢,可以使用BroadcastChannel来同步数据,BroadcastChannel的特性是向其他窗口发送数据,自己是无法接受到自己的数据的,所以接受数据的代码不需要区分自己和其他窗口

方便的地方

  • 用上了iframe沙箱的功能,独立于主页面的窗口,css position:fixed;不会破坏主页面的样式,也不需要特殊处理

到此这篇关于vue中通过iframe方式加载本地的vue页面的解决方法的文章就介绍到这了,更多相关vue iframe加载vue页面内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目

    如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目

    这篇文章主要介绍了如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Vue使用vue-drag-resize生成悬浮拖拽小球

    Vue使用vue-drag-resize生成悬浮拖拽小球

    这篇文章主要为大家详细介绍了Vue使用vue-drag-resize生成悬浮拖拽小球,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 使用vue-element-admin框架从后端动态获取菜单功能的实现

    使用vue-element-admin框架从后端动态获取菜单功能的实现

    ​ vue-element-admin是一个纯前端的框架,左侧菜单是根据路由生成的。实际开发中经常需要根据当前登陆人员的信息从后端获取菜单进行展示,本文将详细介绍如何实现该功能
    2021-04-04
  • vue项目中的类使用方式

    vue项目中的类使用方式

    这篇文章主要介绍了vue项目中的类使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • vue3.0 加载json的方法(非ajax)

    vue3.0 加载json的方法(非ajax)

    这篇文章主要介绍了vue3.0 加载json的方法(非ajax),帮助大家更好的理解和学习vue,感兴趣的朋友可以了解下
    2020-10-10
  • 详解keep-alive + vuex 让缓存的页面灵活起来

    详解keep-alive + vuex 让缓存的页面灵活起来

    这篇文章主要介绍了keep-alive + vuex 让缓存的页面灵活起来,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • VUE 更好的 ajax 上传处理 axios.js实现代码

    VUE 更好的 ajax 上传处理 axios.js实现代码

    本篇文章主要介绍了VUE 更好的 ajax 上传处理 axios.js实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 如何将iconfont图标引入到vant的Tabbar标签栏里边

    如何将iconfont图标引入到vant的Tabbar标签栏里边

    这篇文章主要介绍了如何将iconfont图标引入到vant的Tabbar标签栏里边,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • 浅谈一下Vue技术栈之生命周期

    浅谈一下Vue技术栈之生命周期

    这篇文章主要介绍了浅谈一下Vue技术栈之生命周期,每一个vue实例从创建到销毁的过程,就是这个vue实例的生命周期,这些过程中会伴随着一些函数的自调用,需要的朋友可以参考下
    2023-05-05
  • vue3中v-model的用法详解

    vue3中v-model的用法详解

    vue 提供了很多自定义指令,大大方便了我们的开发,其中最常用的也就是 v-model,他可以在组件上使用以实现双向绑定。它可以绑定多种数据结构, 今天总结一下用法
    2023-04-04

最新评论