在vue3项目嵌套 导入老项目 jQuery项目,减少重复开发

背景:

公司管理平台项目一直是前辈用jQuery做的,为扩展根据自身的技术栈,将jQuery的老项目嵌套入vue3的框架,新功能用vue开发,旧的功能不动直接在vue3用iframe容器来展示

嵌套步骤

2种方式嵌套,一个是已经上线的网站,一个是本地静态页面html

一、嵌套一个已经部署好的jQuery网站

vue3管理平台框架使用了:

vue3-element-admin: 🔥Vue3 + Vite + TypeScript + Element-Plus的后台管理系统模板,配套接口文档和后端源码,vue-element-admin的Vue3版本。

将项目下载运行即可

# 切换目录
cd vue3-element-admin# 安装 pnpm
npm install pnpm -g# 安装依赖
pnpm install# 启动运行
pnpm run dev

打开项目先写一个路由跟菜单栏

在src/router目录创建一个mockRouter.ts,用来配置菜单跳转到iframe,效果如下,点击的菜单出来了。

mockRouter.ts源码

 
export const mockRoutes = [{path: '/test',component: "Layout",redirect: '/test',name: 'Test',meta: { title: 'jquery引入测试', icon: 'nested', roles: ['ADMIN'] },children: [{path: 'personnelFile',component: "iframe/index",name: 'PersonnelFile',meta: { title: '老项目', roles: ['ADMIN'], query: { url: 'https://cn.vuejs.org/' }, iframe: true },children: [{path: 'view',iframeComponent: "iframe/index",name: 'personnelFileView',meta: { title: '查看个人档案', roles: ['ADMIN'], hidden: true}},{path: 'myExamInfo/:tagText',component: "iframe/index",name: 'personnelFileViewExam',meta: { title: '考试详情', roles: ['ADMIN'], hidden: true }}]}]}
]

 老项目的路径,我用vue3官方展示文档网站测试:

 url: 'https://cn.vuejs.org/' 

可以根据自己的项目部署路径配置

创建一个iframe容器用于嵌套展示原来的html

 /views/iframe/index.vue 源码

<template><div class="app-container" style="height:100%;background-color: #f1f4f9;"><!-- <div id="childApp"></div> --><iframe v-if="url" name="iframeChild" id="iframeChild" :src="url" width="100%" frameborder="0" scrolling="no"ref="iframeDom"></iframe><Nodata v-else></Nodata></div>
</template><script setup lang="ts">
import { useRoute } from 'vue-router';
import Nodata from '@/views/error-page/404.vue';
const route = useRoute();
let url = route?.meta.query?.url; 
console.log(useRoute())</script>
<style lang="scss" scoped>
iframe {background: #f1f4f9;min-height: calc(100vh - 84px)
}
</style>

在这里iframe:指向路径为:   'https://cn.vuejs.org/' ,运行效果。

 

二、嵌套一个当前本地jQuery项目(本地html)

如果要指向当前项目静态页面html,可以放在index.html目录下。然后修复配置的路由mockRouters.ts指向

//meta: { title: '老项目', roles: ['ADMIN'], query: { url: 'https://cn.vuejs.org/' }, iframe: true },meta: { title: '老项目', roles: ['ADMIN'], query: { url: 'http://localhost:3000/test/test1.html' }, iframe: true },

vue3项目运行的配置是:http://localhost:3000/,  然后要指向的静态页面路由配置url: 'http://localhost:3000/test/test1.html'

当前vue项目其他静态jQuery页面html运行项目效果 

 test1.html源码
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<div id="overview" style="background-color: #bfc;height: 200px;width: 200px">TEST</div>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/239688.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python生成器:优雅而高效的迭代器

Python是一种强大而灵活的编程语言&#xff0c;拥有丰富的标准库和特性功能&#xff0c;其中之一就是 生成器。 生成器 是Python中一种非常实用的特性&#xff0c;它能帮助我们编写高效的代码&#xff0c;尤其是在处理大量数据时&#xff0c;它能够帮助我们更有效地处理迭代任…

11.9密码加密,加盐算法(手动实现)

一.Spring提供了mb5加密的方法 注意:这种加密不安全,是有规律的,可以被暴力穷举(彩虹表). 二.加盐加密(每次调用都是随机的,无规律的) 1.思路: 每次调用该方法产生唯一的盐值, 加上明文密码, 再经过md5加密形成最终的密码. 三.代码实现 package com.example.demo.common;im…

C++模版

文章目录 C模版1、泛型编程2、函数模版2.1、函数模版概念2.2、函数模版格式2.3、函数模版原理2.4、函数模版的实例化2.5、模板参数的匹配原则 3、类模版3.1、类模版概念3.2、类模版格式3.3、类模板的实例化 C模版 1、泛型编程 泛型编程&#xff08;Generic Programming&#x…

神策数据荣获 36 氪「WISE2023 未来商业之王 企业服务领域年度企业」

11 月 28 日&#xff0c;36 氪 WISE2023 商业之王大会举办。大会上&#xff0c;WISE2023 年度企业重磅发布&#xff0c;聚焦发掘推动产业发展、为经济增长提供创新动能的企业。神策数据作为专业的大数据分析和营销科技服务提供商&#xff0c;在数百家企业中脱颖而出&#xff0c…

Hdoop学习笔记(HDP)-Part.12 安装HDFS

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

【Geoserver】SLD点位样式(PointSymbolizer)设计全通

SLD文件可以控制geoserver的样式管理&#xff0c;这里专门针对点位进行设计&#xff0c;首先点位的设计需要用到这面这个大标签 之前的项目中已经用到了很多关于面的样式管理&#xff0c;这里新学习的是关于点的样式管理 PointSymbolizer 参考资料地址&#xff1a;https://doc…

使用 kubeadm 部署 Kubernetes 集群(二)k8s环境安装

一、安装containerd 安装 k8s 有几种方式&#xff1a; 1、 Kubeadm 2、 二进制 这两个是 k8s 官网提供的方式&#xff0c;也是生产环境用的还可以借助第三方平&#xff1a;rancher、kubesphere 都可以装 k8s 这里使用 kubeadm 1.安装 containerd 在 Kubernetes 集群中&#…

备战春招——12.2算法

动态规划 动态规划的核心思想就是 本次只由上一次决定。不递归连贯考虑。 判断子序列 还不会&#xff0c;好像是先遍历了一遍数据&#xff0c;用一个动态规划&#xff0c;从改点后下一个位置。 费波拉斯数列 费波拉斯数列嘛。 class Solution { public:int fib(int n) {if…

C语言每日一题(43)旋转链表

力扣 61 旋转链表 题目描述 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出&#xff1a;[4,5,1,2,3]示例 2&#xff1a; 输入&#xff1a;head [0,1,2], …

012 OpenCV sobel边缘检测

目录 一、环境 二、soble原理介绍 三、源码实验 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、soble原理介绍 Sobel边缘检测是一种广泛应用于图像处理领域的边缘检测算法&#xff0c;它通过计算图像灰度函数在水平方向和垂直…

毕业论文管理系统的设计与实现

摘要 毕业论文工作是高等学校本科培养阶段的一个重要环节。目前论文管理工作存在着许多问题,例如人工管理极为不便;学生对论文所要撰写的内容并不十分了解,与指导老师的沟通非常不便;老师的指导监督也很难完全到位;手工评审的效率低等。而现有的一些毕业论文信息管理或答辩评审…

Java医院综合绩效考核系统支持主流绩效方案

医院绩效考核管理系统是采用B/S架构模式设计、使用JAVA语言开发、后台使用MySql数据库进行管理的一整套计算机应用软件。系统和his系统进行对接&#xff0c;按照设定周期&#xff0c;从his系统获取医院科室和医生、护士、其他人员工作量&#xff0c;对没有录入信息化系统的工作…