ElementPluss使用消息类组件样式缺失的问题(ElLoading、ElMessage、ElNotification、ElMessageBox)

首先此问题建立在,引入组件库的方式为按需自动引入的方式下:也就是项目按照官方所说的下载了相应插件,配置了自动引入,如果你没配置且想配置请跳转以下链接,按照文档进行配置

ElementPlus官方文档-快速上手(进入后下滑至图片位置)

在这种情况下,使用类似以下代码:

import { ElNotification } from 'element-plus' // 这句是关键
ElNotification({
  title: '提示',
  message:
    '您的申请已提交。',
  type: 'success',
  duration: 15000
})

最终结果:组件是出来了,但是没有任何动画效果和样式,f12查看元素也发现没有样式类,

那么你可以试试去掉import语句(如果你的编译器没有配置严格的校验),此时下面代码中的组件名字就会报错(xxx未定义-之类的),如果可以运行,浏览器不报错,那么不出意外,浏览器中的效果就完美显示了,样式也有了。

原因是我们已经配置了按需自动引入了,所以不需要再手动import,虽然会报错,但资源确实是引入了,这是编译器的问题,编译器看不出来你自动引入了,因为那个插件的引入是隐式的,在编译器看来你从来就没定义过ElNotfication这个东西,所以报错(至于手动引入为啥不带样式文件我不清楚,貌似需要单独引入样式文件)。那么问题就缩小到让编译器忽略这个错误上了,这方式就很多很多了。我在这里提供自己的方法如下:

前提,我使用了eslint来进行代码校验,在eslint的配置文件中,可以配置全局变量如下:

/* eslint-env node */
require('@rushstack/eslint-patch/modern-module-resolution')

module.exports = {
  root: true,
  extends: [
    'plugin:vue/vue3-essential',
    'eslint:recommended',
    '@vue/eslint-config-prettier/skip-formatting'
  ],
  parserOptions: {
    ecmaVersion: 'latest'
  },
  globals: {
    ElMessage: 'readonly',
    ElMessageBox: 'readonly',
    ElLoading: 'readonly',
    ElNotification: 'readonly'
  }
}

注意我使用的eslint8.x的配置文件方式,9.x的配置文件和格式都完全不同。可以看到我将常用的消息组件的名称都声明了全局变量,让编译器认为此变量在文件中不需要再声明,如此即可让编译器忽略掉此问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值