element-plus在vue3中样式不显示的问题

最近在尝试vue3和element-plus构建新项目,记录一下遇到element-plus组件的显示问题。遇到了两个问题

  • 组件样式不显示
  • icon图标不显示

1.问题描述:

element-plus组件的显示,使用input组件的时候,无法显示element-plus的样式

element-plus使用全局引用

import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import App from './App.vue'

const app = createApp(App)
app.use(ElementPlus)
app.use(router).mount('#app')

解决办法

参考element plus官网的使用指南[https://element-plus.gitee.io/zh-CN/guide/quickstart.html],发现引入方法进行了一些更新。

全局引入时,只引入了element plus,没有引入css文件。增加css的引入后,问题解决。

import { createApp } from 'vue'
import App from './App.vue'
import ElementPlus from 'element-plus'
// 增加的引入
import 'element-plus/dist/index.css'

const app = createApp(App)
app.use(ElementPlus)
app.use(router).mount('#app')

2.问题描述:

在写登录模块的时候,想在账号和密码的input框前加上icon图标,但使用el-icon后,只有一块空白的占位,无法显示icon图标。

<el-input type="text" prefix-icon="el-icon-user"/>

解决办法

查阅官方文档https://element-plus.gitee.io/zh-CN/component/icon.html

发现element-plus进行版本更新后,不能直接使用icon图标,需要以组件引入的方式引入后再使用。

组件中单独引入使用到的icon

<template>
	<el-icon>
		<Search />
	</el-icon>
	<el-icon>
		<Edit />
	</el-icon>
</template>

<script >
//首先是导入需要使用的图标
import {Search,Edit} from "@element-plus/icons";
export default {
  //写入components中
  components: {
    Search,
    Edit
  }
};
</script>

在main.js中统一引入

官方也提供了一种统一引入所有icon的方法,这样更方便,在组件中可以直接使用

// 统一导入el-icon图标
import * as ElIconModules from '@element-plus/icons'

// 统一注册el-icon图标
for(let iconName in ElIconModules){
  app.component(iconName,ElIconModules[iconName])
}

以上的el-input的icon显示问题,在统一引入的情况下可以改为以下代码

<el-input type="text">
  <template #prefix>
    <el-icon><User /></el-icon>
  </template>
</el-input>
  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
ag-grid-vue3 是一个用于 Vue3 的数据表格组件,而 element-plus 是一个基于 Vue3 的 UI 组件库。虽然这两个组件库可以独立使用,但是它们可以一起使用以增强 UI 功能。 首先,你需要在项目安装 element-plus,可以使用 npm 或 yarn 安装,如下所示: ``` npm install element-plus --save ``` 或 ``` yarn add element-plus ``` 安装完成后,在 Vue3 使用 element-plus 组件,你可以在 main.js 文件使用以下代码: ```javascript import { createApp } from 'vue' import App from './App.vue' import ElementPlus from 'element-plus' import 'element-plus/lib/theme-chalk/index.css' const app = createApp(App) app.use(ElementPlus) app.mount('#app') ``` 这里我们在 main.js 导入了 ElementPlus 组件,并使用 app.use(ElementPlus) 将组件注册到 Vue3 。注意,为了让样式生效,你需要在 main.js 引入 element-plus/lib/theme-chalk/index.css。 接下来,在 ag-grid-vue3 使用 element-plus 组件,你可以在 ag-grid-vue3 的 columnDefs 使用 element-plus 的组件,例如: ```javascript { headerName: '姓名', field: 'name', cellRendererFramework: { template: '<el-button>{{ value }}</el-button>', data() { return { value: '' } }, mounted() { this.value = this.params.value } } } ``` 这里我们在 ag-grid-vue3 的 columnDefs 使用了 element-plus 的 el-button 组件作为单元格渲染器,这样我们就可以在 ag-grid-vue3 使用 element-plus 的组件了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值