rouyi-vue-pro+vue3+vite4+Element Plus项目中使用生成Vue2+Element UI标准模板

运行一个pro-vue3的前端项目,以及后端服务

在基础设施-代码生成模块中选择某张数据库表导入,并编辑生成信息,前端类型:Vue2+Element UI标准模板

在vue3项目中创建一个vue文件

<template>
</template><script>
// import {create} from '@/api/test'export default{created(){create().then(res => {console.log(res);})}
}
</script>

1.4 src\api\test.js

import request from '@/utils/request'// 创建药品
export function create(data) {return request({url: '/drug//create',method: 'post',data: data})
}

Vue2+Element UI标准模板生成的前端封装好的request请求接口对象

1.5 报错

09:47:36 [vite] hmr update /src/views/tb/drug/index.vue
Failed to load url /src/utils/request (resolved id: C:/Users/lxz/Desktop/project/drug-system/ruoyi-vue-pro-drug/yudao-ui-admin-vue3/src/utils/request) in C:/Users/lxz/Desktop/project/drug-system/ruoyi-vue-pro-drug/yudao-ui-admin-vue3/src/api/test.js. Does the file exist?

问题:在 更新的/src/views/tb/drug/index.vue 文件中,没有找到 /src/utils/request 这个文件

解决办法: 从vue2项目中将/src/utils/request.js 这个文件复制到vue3项目的对应文件夹下

1.6 报错

09:44:01 [vite] Internal server error: Failed to resolve import "element-ui" from "src\utils\request.js". Does the file exist?Plugin: vite:import-analysisFile: C:/Users/lxz/Desktop/project/drug-system/ruoyi-vue-pro-drug/yudao-ui-admin-vue3/src/utils/request.js:2:511  |  import axios from 'axios'2  |  import {Message, MessageBox, Notification} from 'element-ui'|                                                    ^3  |  import store from '@/store'4  |  import {getAccessToken, getRefreshToken, getTenantId, setToken} from '@/utils/auth'
  • import axios from ‘axios’

    这个是vue2项目中直接引入使用的外部axios依赖

     "dependencies": {"@babel/parser": "7.18.4","@riophae/vue-treeselect": "0.4.0","axios": "0.27.2",...
    

    在vue3项目中没有直接使用这个依赖,而是对axios进行了扩展

      "dependencies": {"@element-plus/icons-vue": "^2.1.0","@form-create/designer": "^3.1.3","@form-create/element-ui": "^3.1.24","@iconify/iconify": "^3.1.1","@videojs-player/vue": "^1.0.0","@vueuse/core": "^10.6.1","@wangeditor/editor": "^5.1.23","@wangeditor/editor-for-vue": "^5.1.10","@zxcvbn-ts/core": "^3.0.4","animate.css": "^4.1.1","axios": "^1.6.1",
    

    vue3项目中的axios封装链:

    1. 从vue3项目的src/system/area/index.ts文件中封装的request对象进行向底层追溯

      import request from '@/config/axios'// 获得地区树
      export const getAreaTree = async () => {return await request.get({ url: '/system/area/tree' })
      }// 获得 IP 对应的地区名
      export const getAreaByIp = async (ip: string) => {return await request.get({ url: '/system/area/get-by-ip?ip=' + ip })
      }
      
    2. 进入 src/config/axios/index.ts文件中

      import { service } from './service'import { config } from './config'const { default_headers } = configconst request = (option: any) => {const { url, method, params, data, headersType, responseType, ...config } = optionreturn service({url: url,method,params,data,...config,responseType: responseType,headers: {'Content-Type': headersType || default_headers}})
      }export default {get: async <T = any>(option: any) => {const res = await request({ method: 'GET', ...option })return res.data as unknown as T},post: async <T = any>(option: any) => {const res = await request({ method: 'POST', ...option })return res.data as unknown as T},postOriginal: async (option: any) => {const res = await request({ method: 'POST', ...option })return res},delete: async <T = any>(option: any) => {const res = await request({ method: 'DELETE', ...option })return res.data as unknown as T},put: async <T = any>(option: any) => {const res = await request({ method: 'PUT', ...option })return res.data as unknown as T},download: async <T = any>(option: any) => {const res = await request({ method: 'GET', responseType: 'blob', ...option })return res as unknown as Promise<T>},upload: async <T = any>(option: any) => {option.headersType = 'multipart/form-data'const res = await request({ method: 'POST', ...option })return res as unknown as Promise<T>}
      }
      

      封装http请求对象,并导出get、post、postOriginal、delete、put、download、upload等公共方法

    3. 进入 ./config文件中

      const config: {base_url: stringresult_code: number | stringdefault_headers: AxiosHeadersrequest_timeout: number
      } = {/*** api请求基础路径*/base_url: import.meta.env.VITE_BASE_URL + import.meta.env.VITE_API_URL,/*** 接口成功返回状态码*/result_code: 200,/*** 接口请求超时时间*/request_timeout: 30000,/*** 默认接口请求类型* 可选值:application/x-www-form-urlencoded multipart/form-data*/default_headers: 'application/json'
      }export { config }
      

      封装了http请求的请求基础路径、返回结果状态码、请求头、请求超时时间等配置信息

    4. 进入./service文件中

      import axios, {AxiosError,AxiosInstance,AxiosRequestHeaders,AxiosResponse,InternalAxiosRequestConfig
      } from 'axios'
      

​ 在这里可以看到vue2项目中使用的axios对象,此时,vue3项目中使用的axios版本和vue2项目中使用的版本不一致可能会存在隐患

  • import {Message, MessageBox, Notification} from ‘element-ui’

​ 此处引用了element-ui的依赖,在vue3项目中已经弃用了element-ui而是采用Element Plus

​ vue3项目中的依赖

    "element-plus": "2.4.2",

​ vue2项目中依赖

  "element-ui": "2.15.12",

​ 需要对vue2项目中的request.js中使用的element-ui进行改造成element-plus中的组件!

  • import store from ‘@/store’

    在vue2项目中使用的vuex来做状态管理的,在vue3项目中是没有引入vuex依赖的

    在vue3项目中使用了vue-demi来解决这个问题吗,那么我们在保证vue-demi可用的前提下可以不用考虑这个问题!

  • import {getAccessToken, getRefreshToken, getTenantId, setToken} from ‘@/utils/auth’

    这个在vue3项目中已经兼容了并且做了局部功能升级,在vue2版本的项目中没有对AccessTokenKey,RefreshTokenKey加入到浏览器本地存储中,在vue3项目中引入了web-storage-cache来做本地存储

       "web-storage-cache": "^1.1.1",
    

可以在使用生成Vue2+Element UI标准模板的api.js文件中使用vue3项目封装的ts文件中对象

// import request from '@/utils/request'
// 这个是vue3项目中使用.ts文件封装的http请求对象
import request from '@/config/axios'// 创建药品
export function create(data) {return request({url: '/drug//create',method: 'post',data: data})
}// 获得地区树 这个是ts文件封装的http请求对象的使用方法
export const getAreaTree = async () => {return await request.get({ url: '/system/area/tree' })
}

这个文件是src\api\test.js

<template>
111
</template><script>
import {getAreaTree} from '@/api/test'export default{created(){getAreaTree().then(res => {console.log(res);})}
}
</script>

这是测试的vue文件打印到请求的数据
在这里插入图片描述

根据vue2模板生成的vue页面代码无法直接在vue3项目中使用,需要逐个修改生成的.vue文件中的代码

  Plugin: vite-plugin-eslintFile: C:/Users/lxz/Desktop/project/drug-system/ruoyi-vue-pro-drug/yudao-ui-admin-vue3/src/views/tb/drug/index.vue
12:13:26 [vite] Internal server error:
C:\Users\lxz\Desktop\project\drug-system\ruoyi-vue-pro-drug\yudao-ui-admin-vue3\src\views\tb\drug\index.vue7:89   error    '.native' modifier on 'v-on' directive is deprecated                                  vue/no-deprecated-v-on-native-modifier10:99   error    '.native' modifier on 'v-on' directive is deprecated                                  vue/no-deprecated-v-on-native-modifier13:95   error    '.native' modifier on 'v-on' directive is deprecated                                  vue/no-deprecated-v-on-native-modifier16:92   error    '.native' modifier on 'v-on' directive is deprecated                                  vue/no-deprecated-v-on-native-modifier19:100  error    '.native' modifier on 'v-on' directive is deprecated                                  vue/no-deprecated-v-on-native-modifier22:96   error    '.native' modifier on 'v-on' directive is deprecated                                  vue/no-deprecated-v-on-native-modifier25:25   warning  Expected a linebreak before this attribute                                            vue/first-attribute-linebreak

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

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

相关文章

PTA7-2 一帮一,C语言解答,含代码分析

天大寒&#xff0c;砚冰坚&#xff0c;手指不可屈伸&#xff0c;弗之怠 1.题目信息 “一帮一学习小组”是中小学中常见的学习组织方式&#xff0c;老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作&#xff0c;即在得到…

如何进一步优化Ubuntu服务器的性能

导读&#xff1a; 要进一步优化Ubuntu服务器的性能&#xff0c;您可以考虑以下几个方面&#xff1a;优化软件包管理&#xff1a; Ubuntu使用APT&#xff08;Advanced Package Tool&#xff09;作为其软件包管理工具。为了提高性能&#xff0c;您可以采取以下措施 要进一步优化U…

教师教育研究的意义有哪些

教师教育研究对于提高教育质量、推动教育改革的重要性。也有许多网友对教师教育研究的意义进行了深入探讨。 一、提高教师专业素养 教师是教育的核心力量&#xff0c;教师的专业素养直接影响到教育质量。教师教育研究通过对教育理论、教学方法、教育技术等方面的研究&#xff…

数据分析:继loopy、卡皮巴拉后,小红书下个可爱“顶流”是?

导语 温柔胆小又爱哭的吉伊、乐观开朗会说人话的哈奇&#xff0c;还有自由奔放整天发癫的兔子乌萨奇&#xff0c;三只小可爱共同组成了《吉伊卡哇》&#xff08;ちいかわ&#xff0c;Chiikawa&#xff09;的主角三人组&#xff0c;持续引领当代年轻人的社交话题。 据千瓜数据…

网络编程day5

作业 1> 使用select完成TCP客户端程序 //client #include<myhead.h> #define CLINET_IP "192.168.125.79" #define CLINET_PORT 9999 #define SERVE_IP "192.168.125.79" #define SERVE_PORT 8888 int main(int argc, const char *argv[]) {/…

Zabbix“专家坐诊”第218期问答汇总

问题一 Q&#xff1a;使用SNMP可以获取到实际数量&#xff0c;知道总数&#xff0c;可以计算出百分比吗&#xff1f;需要怎么操作&#xff1f; A&#xff1a;用可计算监控项。 JIzTjRMC65422586368f3.png 问题二 Q&#xff1a;我这边监控项每1分钟获取一下值&#xff0c;然后…

类和对象(中篇)

类的六个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员函数。 默认成员函数&#xff1a; 用户没有显式实现&#xff0c;编译器会…

网易面试:亿级用户,如何做微服务底层架构?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业网易、美团、字节、如阿里、滴滴、极兔、有赞、希音、百度、美团的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; 微服务改造&#xff0c;你是怎么做的&#xff1…

网络世界的黑暗角落:常见漏洞攻防大揭秘

网络世界的黑暗角落&#xff1a;常见漏洞攻防大揭秘 今天带来了网站常见的漏洞总结,大家在自己的服务器上也需要好好进行防护,密码不要过于简单.不然非常容易遭到攻击,最终达到不可挽回的损失.很多黑客想网络乞丐一样将你服务器打宕机,然后要求你进行付费.不知道大家有没有遇到…

【PIE-Engine 数据资源】全球2.5分分辨率累积降水量数据集

文章目录 一、 简介二、描述三、波段四、示例代码参考资料 一、 简介 数据名称全球2.5分分辨率累积降水量数据集时间范围1961年- 2018年空间范围全球数据来源worldclim代码片段var images pie.lmageCollection(WORLDCLIME/GLOBAL_PREC_MONTH") 二、描述 全球2.5分分率果…

【Python炫酷系列】祝考研的友友们金榜题名吖(完整代码)

文章目录 环境需求完整代码详细分析系列文章环境需求 python3.11.4及以上版本PyCharm Community Edition 2023.2.5pyinstaller6.2.0(可选,这个库用于打包,使程序没有python环境也可以运行,如果想发给好朋友的话需要这个库哦~)【注】 python环境搭建请见:https://want595.…

计算机硬件 4.1声卡与音响

第四章 输入/输出系统 第一节 声卡与音响 一、认识声卡 1.定义&#xff1a;采用脉冲编码调制技术&#xff0c;实现音频和数字信号相互转换的硬件电路。 2.功能&#xff1a;对音频输入设备进行数模或模数转换&#xff0c;将数据存入计算机。 3.组成&#xff1a;数字信号处理芯…

10、Qt:对数据进行加密、解密

一、说明 在Qt项目中简单的对数据进行加密解密&#xff0c;有如下两种方式 1、QCryptographicHash Qt提供了用于加密的类QCryptographicHash&#xff0c;但是QCryptographicHash类只有加密功能&#xff0c;没有解密功能 2、Qt-AES 使用第三方AES库&#xff0c;对数据进行加密解…

【动态规划】08路径问题_下降路径最小和_C++(medium)

题目链接&#xff1a;leetcode下降路径最小和 目录 题目解析&#xff1a; 算法原理 1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 5.返回值 编写代码 题目解析&#xff1a; 题目让我们求通过 matrix 的下降路径 的 最小和 由题可得&#xff1a; 在下一行选择的元…

用户管理第2节课-idea 2023.2 后端--删除表,从零开始

一、鱼皮清空model文件夹下 二、鱼皮清空mapper文件夹下 三、删除 test 测试类下的部分代码 3.1删除SampleTest 3.2删除部分代码 UserCenterApplicationTests

Android ViewModel的简单应用

Android ViewModel 是一种设计模式&#xff0c;用于在应用程序组件之间存储和管理UI相关的数据。下面是使用Android ViewModel的基本步骤&#xff1a; 添加 ViewModel 依赖&#xff1a;在项目的 build.gradle 文件中添加以下依赖&#xff1a; implementation "androidx.…

【SQL】根据年份,查询每个月的数据量

根据年份&#xff0c;查询每个月的数据量 一种 WITH Months AS (SELECT 1 AS Month UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION…

计算型服务器和通用型服务器的区别_Maizyun

计算型服务器和通用型服务器的区别 随着云计算技术的不断发展&#xff0c;服务器作为云计算的核心基础设施&#xff0c;其类型和功能也在不断丰富。其中&#xff0c;计算型服务器和通用型服务器是两种常见的服务器类型。本文将详细介绍这两种服务器之间的区别。 一、计算型服…

B : DS二叉排序树之创建和插入

Description 给出一个数据序列&#xff0c;建立二叉排序树&#xff0c;并实现插入功能 对二叉排序树进行中序遍历&#xff0c;可以得到有序的数据序列 Input 第一行输入t&#xff0c;表示有t个数据序列 第二行输入n&#xff0c;表示首个序列包含n个数据 第三行输入n个数据…

Axure中如何使用交互样式交互事件交互动作情形

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《产品经理如何画泳道图&流程图》 ⛺️ 越努力 &#xff0c;越幸运 目录 一、Axure中交互样式 1、什么是交互样式&#xff1f; 2、交互样式的作用&#xff1f; 3、Axure中如何…