Vue2升级Vue3 --- 第三方库变化(基于gogocode)

2024-09-06 20:20

本文主要是介绍Vue2升级Vue3 --- 第三方库变化(基于gogocode),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本次升级基于gogocode快捷转换gogocode升级体验,汇总的部分问题可能与gogocode有关,但仍可作为vue2升级vue3过程中报错问题的解决参考

第三方库变化

1.vue-contextmenujs(右键菜单)

// 原第三方库不支持vue3,更换为支持vue3的库"@imengyu/vue3-context-menu": "^1.0.8"
// 更换库后组件样式与以前不一致,如果要求还原样式的话需要进行自定义修改
// 项目内右键菜单原绑定在ant-design-vue的tabs组件上,如果不更改绑定位置会导致事件无法触发import Contextmenu from 'vue-contextmenujs/dist/contextmenu.umd.js'
=> import Contextmenu from '@imengyu/vue3-context-menu'import '@imengyu/vue3-context-menu/lib/vue3-context-menu.css' // 额外引入样式文件

2.@vue/composition-api(Vue2中使用Vue3语法)

  • 原因:Vue3中已经支持,不需要引入,引入会报错 [vue-composition-api] No vue dependency found
  • 解决:修改引入@vue/composition-apivue

3.vxe-table(表格组件)

  • 原因:当前版本不支持vue3
  • 解决:升级版本为4.3.5

4.vuedraggable(拖拽组件)

  • 原因:当前版本不支持vue3
  • 主要变化:不支持多个根节点
  • 版本:^4.1.0
  • 提示:由于元素结构发生变化,样式要还原也需要调整。以下为适配新版本拖拽组件的修改模板,可按照步骤一一替换,若需更详细的指引请自行找官方文档
/*
1.gogocode-cli修改v-model为v-model:value,此时需要手动还原
2.item-key可用于绑定list中单个元素element中的某个属性字段,用于替换原来v-for中的key值
3.tag="transition-group"用于替换原来的transition-group
4.:component-data="{tag: 'span'}"绑定原来的transition-group的属性字段
5.使用template取代原来的v-for渲染的方式,element与index为指定插槽属性,用于获取list中单个元素以及元素对应索引,index可用于原来的key值绑定
6.内部遍历的元素逐个替换成element
*/
<draggablev-model="list"item-key="id"tag="transition-group":component-data="{tag: 'span'}"
><template #item="{element, index}"><div :key="index">{{ element.text }}</div></template>
</draggable>

5.monaco变化

  • 原因:编辑器实例为Vue3响应式数据时,更新编辑器内容会导致UI界面更新,堆栈溢出
  • 解决方案1:将编辑器实例由Vue3响应式数据转变为普通变量,但原通过vue实例访问编辑器实例会无法获取(若无需通过vue实例获取编辑器实例则可直接使用该方案)
  • 解决方案2:getValue、setValue等各种调用编辑器实例API时先通过toRaw获取原始数据,避免响应性更新(该方案比较繁杂,目前暂不确定哪些API有此硬性需求,建议API调用时都先获取原始数据)

6.vue-router变化

  • 问题:定义路由存在相同名称name在4.0版本中会忽略前面同名的路由
  • 解决:同名路由给name字段赋不同的值

7.vue-loader变化

  • 问题:vue-loader版本必须为16.x 版本或更高版本
  • 解决:增加"vue-loader": "^16.0.0"并安装,然后调整vue-loader调用方法:const VueLoaderPlugin = require('vue-loader/lib/plugin') => const { VueLoaderPlugin } = require('vue-loader')

这篇关于Vue2升级Vue3 --- 第三方库变化(基于gogocode)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1143028

相关文章

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

使用Python和Tkinter实现html标签去除工具

《使用Python和Tkinter实现html标签去除工具》本文介绍用Python和Tkinter开发的HTML标签去除工具,支持去除HTML标签、转义实体并输出纯文本,提供图形界面操作及复制功能,需... 目录html 标签去除工具功能介绍创作过程1. 技术选型2. 核心实现逻辑3. 用户体验增强如何运行

java对接第三方接口的三种实现方式

《java对接第三方接口的三种实现方式》:本文主要介绍java对接第三方接口的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录HttpURLConnection调用方法CloseableHttpClient调用RestTemplate调用总结在日常工作

CSS 样式表的四种应用方式及css注释的应用小结

《CSS样式表的四种应用方式及css注释的应用小结》:本文主要介绍了CSS样式表的四种应用方式及css注释的应用小结,本文通过实例代码给大家介绍的非常详细,详细内容请阅读本文,希望能对你有所帮助... 一、外部 css(推荐方式)定义:将 CSS 代码保存为独立的 .css 文件,通过 <link> 标签