element-plus按需引入后ElMessage与ElLoading在页面中的使用

目录
  • element-plus按需引入后ElMessage与ElLoading在页面使用
    • 按照官网按需引用element-plus
    • ElMessage与ElLoading使用问题
    • 解决找不到名称“ElMessage”报错
    • 虽然在main.ts中引入可以解决
  • 从element-plus引入ElLoading和ILoadingInstance出现错误
    • 找了一早上的bug终于解决了

element-plus按需引入后ElMessage与ElLoading在页面使用

按照官网按需引用element-plus

pnpm install element-plus
pnpm add -D unplugin-vue-components unplugin-auto-import
// vite.config.ts
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
export default {
  plugins: [
    // ...
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
}

ElMessage与ElLoading使用问题

<script setup lang="ts">
  const testMessage = () => {
    ElMessage.success('1211')
  }
</script>
<template>
  <div>
    <el-button type="primary" @click="testMessage">Primary</el-button>
  </div>
</template>

此时ElMessage与ElLoading也是可用,当时vscode有会报错提示-----------》找不到名称“ElMessage”。ts(2304),我在tsconfig.json添加了配置依旧报错

解决找不到名称“ElMessage”报错

1.手动引入ElMessage

<script setup lang="ts">
  // 手动引入
  import { ElMessage } from 'element-plus'
  const testMessage = () => {
    ElMessage.success('1211')
  }
</script>
<template>
  <div class="bg-light-900 flex justify-center">
    <el-button type="primary" @click="testMessage">Primary</el-button>
    <Test />
  </div>
</template>

2.在main.ts中引入对应样式

// 引入Elmessage和Elloading的css样式文件
import 'element-plus/theme-chalk/el-loading.css'
import 'element-plus/theme-chalk/el-message.css'

3.ElLoading同理

虽然在main.ts中引入可以解决

但背离了我们自动导入的初衷,所以推荐下面这种方式

pnpm add vite-plugin-style-import consola -D
// vite.config.ts
import {
  createStyleImportPlugin,
  ElementPlusResolve,
} from 'vite-plugin-style-import'
export default {
  plugins: [
    // ...
    createStyleImportPlugin({
      resolves: [ElementPlusResolve()],
      libs: [
        {
          libraryName: 'element-plus',
          esModule: true,
          resolveStyle: (name: string) => {
            return `element-plus/theme-chalk/${name}.css`
          },
        },
      ]
    }),
  ],
}

这样配置后 我们就不用在mian.js中手动导入ElMessage与ElLoading的样式了

从element-plus引入ElLoading和ILoadingInstance出现错误

因为element-plus更新频率很高,所以路径也有改变,可以试一下我下面的这个引用路径

找了一早上的bug终于解决了

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • vue3 element plus按需引入最优雅的用法实例

    全局导入 下载安装element plus后,在入口文件配置一下并挂载,就能畅通无阻的使用了.但问题是这样有很多用不上的组件都被打包进来了,导致包的体积非常大. 按需导入 采用按需导入的方法,其实是用解构的方式,从element的包中解构出来,再挂载到app上面.这样开发中用到什么组件就打包什么确实很好,减少了包的体积.但是又有一个新的问题,就是每次想要使用新的组件的时候,都要去解构一下,并且挂载.操作起来非常繁琐. 有什么办法能够像使用全局引入那样只配置一次,后面要用到什么组件,都会自己按需加

  • element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)

    突然发现已经半年没更新的element-ui更新了 更新了什么还不清楚,但是告知了基于vue3.x版本的 element-plus 已经出来了. 先来上手体验一下 首先安装一个最新的@vue-cli,搭建一个vue3.x的项目,脚手架创建流程已经很简洁了,这里就不多说了.建好之后,直接开始安装吧 npm i element-plus 为了方便,直接采取全部引入的方式 src/plugins/element.ts import ElementPlus from 'element-plus' imp

  • element-plus的自动导入和按需导入方式详解

    element-plus根据官网文档,推荐用户采用按需导入的方式进行导入. 我的项目是使用vite进行构建的,根据官网的文档,利用unplugin-vue-components插件进行自动按需导入. 当我们使用element的标签时,无需再使用import对组件进行导入. 例如: <el-button>test</el-button> 会自动引入ElButton组件. 不过当我们想要使用命令的方式创建element组件时,样式会无法自动引入. 我们以ElMessage为例. imp

  • vue3.0中使用element的完整步骤

    前言: 在vue3.0中使用element框架,因为element是支持vue2.0的,他推出的支持vue3.0的版本叫 element-plus 官网入口:点我进入 一.个人遇到的问题与解决办法: 遇到的问题: 我直接用cnpm  i element-plus -S 装的版本,不知道为啥,一直报错 图1,版本型号 图2 ,我的代码中使用图3 解决办法: 我把package.json中的element-plus的版本更换成    下面这句话,解决了问题(是否为最新版本问题,还在求证中) "ele

  • element-plus按需引入后ElMessage与ElLoading在页面中的使用

    目录 element-plus按需引入后ElMessage与ElLoading在页面使用 按照官网按需引用element-plus ElMessage与ElLoading使用问题 解决找不到名称“ElMessage”报错 虽然在main.ts中引入可以解决 从element-plus引入ElLoading和ILoadingInstance出现错误 找了一早上的bug终于解决了 element-plus按需引入后ElMessage与ElLoading在页面使用 按照官网按需引用element-pl

  • ASP.NET2.0:页面中链入的CSS、js文件带中文时需注意

    当定义的样式中有中文时,如 .sometyle {font-family:@黑体;},如果书写不正确,如写成 .sometyle {font-family: 黑体;},这应该是个错误的写法,这样不仅这个样式不起作用,而且还会影响到定义在它后面的样式起作用,不知道对css的解析本来就是这个规则,还是ASP.NET 2.0的问题. 当你直接把从网上download下来的js文件加入的VS2005项目中时,如果此文件中带中文,当你调用其方法时,就会出现对象找不到的js错误,就像你没有链如该文件一样.你

  • vue.js+element 默认提示中英文操作

    element默认中文版,但是我们在做英文页面时自己翻译很不爽,所以我们用element自带英文包,只要在html页面中引入就可以了, 具体引入方法有很多种,在此提供了我用过的一种,仅作为参考使用: 补充知识:element-ui组价中表单的验证提示显示后台的提示信息及自定义提示 我在做这个的时候一个是分给我的那个页面 是有两个接口的,所以提示信息就是根据接口的response.success 提示 写一个提示语"XX已存在"如下: html: ​ <el-form :model

  • 再JavaScript的jQuery库中编写动画效果的指南

    jquery中常用的动画的方法就是hide()与show(). $(element).hide()这段代码可以与这相等element.css("display","none") 在hide(time)与show(time)中填入事件,可以慢慢消失跟显现.可以修改元素的多个样式,高度,宽度,不透明度. 另一组方法fadeIn()与fadeOut()这个与hide跟show不同的是,当使用hide或者show的时候会改变网页的高度,而fadeIn与fadeOut则不会.

  • 微信JS SDK接入的几点注意事项(必看篇)

    微信JS SDK接入,主要可以先参考官网说明文档,总结起来有几个步骤: 1.绑定域名: 先登录微信公众平台进入"公众号设置"的"功能设置"里填写"JS接口安全域名". 备注:登录后可在"开发者中心"查看对应的接口权限. 2.引入JS文件:在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.2.0.js, 备注:支持使用 AMD/CMD 标准

  • 浅谈element中InfiniteScroll按需引入的一点注意事项

    大家为了节省空间,常常进行按需引入来节省空间,这里我给大家来介绍一下element中按需引入无限滚动指令注意的事项. 针对前面element 按需引入的一些配置这里就不再详细介绍了. 那么这里讲的是在main.js写入以下代码. import { InfiniteScroll } from 'element-ui'; Vue.use(InfiniteScroll) 好,这样引入.注册了,那么我们接下来做得事情就是在页面使用它. <template> <ul class="inf

  • Vue3+Vite项目按需自动导入配置以及一些常见问题修复

    目录 一.Vue API自动导入 1.1 配置unplugin-auto-import 1.2 可能遇到ts,eslint不识别而导入报错的问题 1.3 配置src/component目录下的组件自动引入 二.按需引入UI组件库(antd,element-plus) 2.1.按需引入element-plus 2.2 ant-design-vue 按需引入 2.3 自动导入 Element Plus Icon 三.关于配置文件 总结 一.Vue API自动导入 解决的问题:避免在每个vue组件中都

  • vue项目如何引入element ui、iview和echarts

    目录 vue引入element ui.iview和echarts 1.vue项目引入elementui 2.vue项目中引入iview 3.vue项目中引入echarts 4.main.js文件代码截图 5.echarts在引入后 6.引入之后就可以使用他们的组件了 iview与elementui对比 表格 风格 按需引入 表单验证 下拉选择器 vue引入element ui.iview和echarts 记性不好,每次引入都要重新搜一遍,今天把几个自己整理一下.全部引入,没搞按需引入. 1.vu

  • 探索angularjs+requirejs全面实现按需加载的套路

    在进行有一定规模的项目时,通常希望实现以下目标:1.支持复杂的页面逻辑(根据业务规则动态展现内容,例如:权限,数据状态等):2.坚持前后端分离的基本原则(不分离的时候,可以在后端用模版引擎直接生成好页面):3.页面加载时间短(业务逻辑复杂就需要引用第三方的库,但很可能加载的库和用户本次操作没关系):4,还要代码好维护(加入新的逻辑时,影响的文件尽量少). 想同时实现这些目标,就必须有一套按需加载的机制,页面上展现的内容和所有需要依赖的文件,都可以根据业务逻辑需要按需加载.最近都是基于angula

随机推荐