本文总结了vue2升级vue3可能会遇到的语法警告和错误,如果想知道怎样升级,可以查看我的上一篇文章:vue2升级vue3指南(一)—— 环境准备和构建篇

Warning

1、deep

/deep/::v-deep的写法都被vue3弃用,需要改为:deep()

升级前:

/deep/.xxxxx {}

升级后:

:deep(.xxxxx) {}

2、.sync

.sync modifier for v-bind has been removed. Use v-model with argument instead. v-bind:value.sync should be changed to v-model:value.

升级前:

<CustomerComponent
:value.sync="value"
></CustomerComponent>

升级后

<CustomerComponent
v-model:value="value"
></CustomerComponent>

Error

1、 this.$on$off$once

$on$off$once 实例方法已被移除,组件实例不再实现事件触发接口,不过,$emit 仍然包含于现有的 API 中,因为它用于触发由父组件声明式添加的事件处理函数。

解决方案有三种:

(1)换一种实现逻辑,不使用$on$off$once,vue3。Vue3 官方文档是这样说的:“在绝大多数情况下,不鼓励使用全局的事件总线在组件之间进行通信。虽然在短期内往往是最简单的解决方案,但从长期来看,它维护起来总是令人头疼。”。

(2)重新封装一个全局this.$on$off$once

(3)使用外部的、实现了事件触发器接口的库,例如 mitttiny-emitter

PS:(1)、(3)两种方案可以参考官方文档:vue3-事件总线,文档中给出了不使用事件总线的替代方案,以及替代vue2 $on$off$once等事件触发接口库。

2、mock

升级vue3和webpack5后,vue.config.js中webpack的配置报错:options has an unknown property 'before'.

升级前:

before(app) {
apiMocker(app, path.resolve('./mock/mock-server.js')) // mock数据
},

升级后

onBeforeSetupMiddleware(devServer) {
apiMocker(devServer.app, path.resolve('./mock/mock-server.js'))
}

无Error和Warning但不响应

1、keyup

升级前:

@keyup.13="enterEventFun"

升级后

@keyup.enter="enterEventFun"

2、vant2升级vant3部分组件事件不响应

vant3和vue官方提供的迁移构建版本兼容vue2模式有些冲突,如果需要vant3组件表现正常,将@vue/compat的相关引用移除。

3、Vant2升级为Vant3后,部分组件样式异常

异常组件为:Toast,Dialog,Notify 和 ImagePreview。

Vant3 中以上组件是以函数的形式提供的,在使用函数组件时,需要手动引入样式。

// Toast
import { Toast } from 'vant';
import 'vant/es/toast/style'; // Dialog
import { Dialog } from 'vant';
import 'vant/es/dialog/style'; // Notify
import { Notify } from 'vant';
import 'vant/es/notify/style'; // ImagePreview
import { ImagePreview } from 'vant';
import 'vant/es/image-preview/style';

4、Vant2升级为Vant3后,部分组件原有的样式覆盖未生效

vant3的部分组件的部分样式名有改名,如van-tab__pane-wrapper改为van-tab__panel-wrapper,部分样式取消,如van-button--info。所以,如果之前针对vant2编写的样式覆盖的代码在升级为vant3后失效了,从这方面切入检查即可。

vue2升级vue3指南(二)—— 语法warning&error篇的更多相关文章

  1. vue2升级vue3指南(一)—— 环境准备和构建篇

    1.nodejs和npm 注意二者的版本,版本过低需要升级,本人升级后的版本如下: $ node -v v16.15.1 $ npm -v 8.11.0 2.package.json 和依赖升级 由于 ...

  2. vue2升级vue3:vue2 vue-i18n 升级到vue3搭配VueI18n v9

    项目从vue2 升级vue3,VueI18n需要做适当的调整.主要是Vue I18n v8.x 到Vue I18n v9 or later 的变化,其中初始化: 具体可以参看:https://vue- ...

  3. vue2升级vue3:Vue Demij打通vue2与vue3壁垒,构建通用组件

    如果你的vue2代码之前是使用vue-class-component 类组件模式写的.选择可以使用 https://github.com/facing-dev/vue-facing-decorator ...

  4. uniapp项目vue2升级vue3简单记录

    看到好多开源项目都升级了vue3,看文章说vue3性能升级很多,而且组合式api很香,遂把最近开发的自助洗车app升级下,在此记录下出现的问题. uniapp升级vue3官方指南 我是先去vue官网看 ...

  5. python 2.7 - 3.5 升级之路 (二) : 语法与类库升级

    背景 在上一篇博文中,我们为升级python 2 -> 3已经做了一些准备.在这篇中,我们将针对语法与类库这两个方面进行讨论. 关于语法 1. print 在python3中, print 已经 ...

  6. Vue2和Vue3技术整理1 - 入门篇 - 更新完毕

    Vue2 0.前言 首先说明:要直接上手简单得很,看官网熟悉大概有哪些东西.怎么用的,然后简单练一下就可以做出程序来了,最多两天,无论Vue2还是Vue3,就都完全可以了,Vue3就是比Vue2多了一 ...

  7. 盘点Vue2和Vue3的10种组件通信方式(值得收藏)

    Vue中组件通信方式有很多,其中Vue2和Vue3实现起来也会有很多差异:本文将通过选项式API 组合式API以及setup三种不同实现方式全面介绍Vue2和Vue3的组件通信方式.其中将要实现的通信 ...

  8. P6 EPPM R16.1安装与配置指南(二)

    P6 EPPM R16.1安装与配置指南(一) http://www.cnblogs.com/endv/p/5634620.html P6 EPPM R16.1安装与配置指南(二) 环境变量配置 新建 ...

  9. iOS警告-Warning: Error creating LLDB target at path(模拟器警告)

    Warning: Error creating LLDB target at path '/Users/apple/Library/Developer/Xcode/DerivedData/Observ ...

随机推荐

  1. vuepress搭建UI组件库文档踩坑篇

    为了实现组件效果预览及代码展示可折叠功能,使用了插件vuepress-plugin-demo-container 相关配置可参考官网说明文档 第一步 安装插件 npm i - D vuepress-p ...

  2. Java学习笔记-基础语法Ⅶ-集合

    集合 集合类特点:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变 这里需要回顾一下,因为数组和字符串一旦创建,就不可改变,需要区分一下 import java.util.ArrayLi ...

  3. 20 HTTP 长连接与短连接

    20 HTTP 长连接与短连接 每日一句 纸上得来终觉浅,绝知此事要躬行. 每日一句 Never give up until the fight is over. 永远不要放弃,要一直战斗到最后一秒. ...

  4. Vue项目中的接口进阶使用

    创建services文件夹 1.文件夹apis.index.request的三个文件. 2.apis文件放接口 export const apis = { checkDeviceNo: '/api/c ...

  5. 关于我学git这档子事

    创建本地分支并切换到该分支 git checkout -b *** 相当于如下2个命令: git branch *** git checkout *** 推送本地开发分支到远程开发分支 git pus ...

  6. GO的日志库log竟然这么简单!

    前言 最近在尝试阅读字节开源RPC框架Kitex的源码,看到日志库klog部分,果不其然在Go原生的log库的基础上增加了自己的设计,大体包括增加了一些格式化的输出.增加一些常用的日志级别等. 一番了 ...

  7. docker-compose 搭建 Prometheus+Grafana监控系统

    有关监控选型之前有写过一篇文章: 监控系统选型,一文轻松搞定! 监控对象 Linux服务器 Docker Redis MySQL 数据采集 1).prometheus: 采集数据 2).node-ex ...

  8. 微信小程序使用 ECharts

    echarts-for-weixin 是 ECharts 官方维护的一个开源项目,提供了一个微信小程序组件(Component),我们可以通过这个组件在微信小程序中使用 ECharts 绘制图表. e ...

  9. C#/VB 数据库连接字符串大全

    C#/VB 数据库连接字符串大全 https://www.connectionstrings.com/ SQL Server常用 Standard Security Server=myServerAd ...

  10. 关于个人项目(臻美MV【仿抖音App】)滑动切换视频的分析(前端角度)

    我们知道你天天刷抖音的时候可以上滑切换视频,互不影响.那么我们站在前端的角度能否可以实现这种效果呢?这是我的个人项目:臻美MV 下面我是用Vue写的,现在我把它开源. Vue: 初始界面 <te ...