今天在使用vue3 + Element Plus 的时候,遇到 message 样式不生效的问题,但是又没有报错。
import { User, Lock } from '@element-plus/icons-vue'
import { ref, watch } from 'vue'
import { userRegisterService, userLoginService } from '@/api/user.js'
import { ElMessage } from 'element-plus'
import { useUserStore } from '@/stores'
// 登录请求
const userStore = useUserStore()
const login = async () => {
await form.value.validate()
// 开始登录
const { data } = await userLoginService(formModel.value)
userStore.setToken(data.token)
ElMessage.success('登录成功')
}
经过排查,原因是已经全局引用了 ElMessage(忘了怎么引入的了)
并且在 .eslintrc.cjs 文件里面已经忽略掉了ElMessage的提示
globals: {
ElMessage: 'readonly',
ElMessageBox: 'readonly',
ElLoading: 'readonly'
}
然后局内使用的时候,自动生成了引用 ElMessage ,导致冲突样式失效,只要将局内引用删掉即可恢复正常。
import { User, Lock } from '@element-plus/icons-vue'
import { ref, watch } from 'vue'
import { userRegisterService, userLoginService } from '@/api/user.js'
// import { ElMessage } from 'element-plus'
import { useUserStore } from '@/stores'