本文的语法变更基于gogocode篇中进行进一步说明
gogocode篇:https://blog.csdn.net/qq_44242707/article/details/122742884
一.语法变更
1.package.json
- "vue-template-compiler": "^2.6.11",
+ "@vue/compiler-sfc": "3.1.0",
- "vue-loader": "^15.9.1",
+ "vue-loader": "^16.0.0", // gogocode执行命令基础上的进一步变更
- "ant-design-vue": "^1.7.2",
+ "ant-design-vue": "^2.2.8",
// vue、vuex、vue-router升级
"vue": "3.1.0",
"vue-router": "^4.0.8",
"vuex": "^4.0.2",
2.vue-loader升级
// 切换获取vue-loader操作
- const VueLoaderPlugin = require('vue-loader/lib/plugin')
+ const { VueLoaderPlugin } = require('vue-loader')
3. /deep/ => :deep()
4.插槽
- slot、slot-scope => v-slot
- scopedSlots替换为slots
5.对象属性监听
- 对象属性的增加删除不具备响应性 => 对象属性的增加删除具备响应性
- this.$set增加或删除对象属性 => 直接对对象属性增加删除,对象仍具有响应性
6.不再支持的属性或方法
- this.$options
- 实例的空挂载$mount()
7.Vue.extend
- Vue2中Vue.extend创建新的vue实例 => Vue3中的createApp创建新的vue实例
二.第三方库变更
1.vue-contextmenu更换
- 新插件:@imengyu/vue3-context-menu
- 项目地址:https://github.com/imengyu/vue3-context-menu
- 个性化调整:因更换插件因此需要调整样式
- 替换方法:
package.json: vue-contextmenujs => @imengyu/vue3-context-menu
index.js: import Contextmenu from '@imengyu/vue3-context-menu'
可能问题:右键菜单事件失效
可能原因:右键菜单事件原来绑定在a-tabs。antd版本升级导致失效,需更换绑定对象为div
2.vuedraggable升级
- 新特性:模板中只允许存在一个根节点
- 多根节点报错:template内部包一层div,在div内部引入自定义组件可避免
- 警告:draggable中需要绑定item-key,要根据不同element分别配置
<draggable v-model="myArray">
<transition-group name="fade">
<div v-for="element in myArray" :key="element.id">
{{element.name}}
</div>
</transition-group>
</draggable>
=>
<draggable v-model="myArray" tag="transition-group" :component-data="{name:'fade'}">
<template #item="{element}">
<div>{{element.name}}</div>
</template>
</draggable>
3.monaco调整
- 问题:monaco不支持Vue3数据,monaco获取数据过程导致堆栈溢出,UI卡死
- 解决:将editor由响应式改为局部变量
版权声明:本文为qq_44242707原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。