当前位置: 首页 > news >正文

超详细!!!electron-vite-vue开发桌面应用之引入UI组件库element-plus(四)

云风网
云风笔记
云风知识库

一、安装element-plus以及图标库依赖

npm install element-plus --save
npm install @element-plus/icons-vue
npm i -D unplugin-icons

二、vite按需引入插件

npm install -D unplugin-vue-components unplugin-auto-import

unplugin-vue-components是一个用于Vue.js的插件,它允许你导入Vue组件,而不需要在你的代码中显式地导入它们。这个插件可以让你按需导入组件,从而减少初始加载大小。

unplugin-auto-import是一个用于Vue.js的插件,它可以自动导入Vue.js的相关API,如Vue自身,Vue的RFC(响应式),Composition API,以及其他一些常用的Vue功能。

三、vite.config.ts文件配置引用element-plus

import { defineConfig } from 'vite'
import path from 'node:path'
import electron from 'vite-plugin-electron/simple'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'//自动导入相关api
import Components from 'unplugin-vue-components/vite'//按需导入组件
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
// https://vitejs.dev/config/
export default defineConfig({plugins: [AutoImport({resolvers: [// 自动导入elementPlus组件ElementPlusResolver(),// 自动导入图标组件 IconsResolver({prefix: 'Icon',})],dts: path.resolve(__dirname, 'types/auto-imports.d.ts')}),Components({resolvers: [ElementPlusResolver(),// 自动注册图标组件IconsResolver({enabledCollections: ['ep'],})],dts: path.resolve(__dirname, 'types/components.d.ts')}),//图标的导入配置Icons({autoInstall: true,}),vue(),electron({main: {// Shortcut of `build.lib.entry`.entry: 'electron/main.ts',onstart(args) {args.reload()// args.startup()}},preload: {// Shortcut of `build.rollupOptions.input`.// Preload scripts may contain Web assets, so use the `build.rollupOptions.input` instead `build.lib.entry`.input: path.join(__dirname, 'electron/preload.ts'),},// Ployfill the Electron and Node.js API for Renderer process.// If you want use Node.js in Renderer process, the `nodeIntegration` needs to be enabled in the Main process.// See 👉 https://github.com/electron-vite/vite-plugin-electron-rendererrenderer: process.env.NODE_ENV === 'test'// https://github.com/electron-vite/vite-plugin-electron-renderer/issues/78#issuecomment-2053600808? undefined: {},}),],
})

四、element-plus应用到页面

 <el-button type="success" @click="count++">count is {{ count }}</el-button><el-icon><IEpPlus/></el-icon><i-ep-delete />

页面渲染效果如下

在这里插入图片描述

注意事项

Iconify 图标结构由三部分组成:{prefix}-{collection}-{icon}
prefix:icon的前缀,默认值为’i’,可设置成false,如果设置成false,那么组件使用就变成
collection: 默认是iconify
icon: 图标集中对应的图标名字
collection对应的是 enabledCollections配置,默认是iconify上的所有图标。这里设置的是[‘ep’],表示的是Iconify 中的 element-plus 的图标,也可以设置mdi、ant-design,它会自动根据名称在package.json下载安装对应的图标集
Icons()表示会自动安装@iconify-json/ep的依赖,设置为true,他就会自动安装iconify 图标。

四、补充说明插件unplugin-vue-components和unplugin-auto-import

1、安装依赖运行后,根目录自动生成两个ts声明文件
components.d.ts
/* eslint-disable */
// @ts-nocheck
// Generated by unplugin-vue-components
// Read more: https://github.com/vuejs/core/pull/3399
export {}/* prettier-ignore */
declare module 'vue' {export interface GlobalComponents {ElButton: typeof import('element-plus/es')['ElButton']HelloWorld: typeof import('./src/components/HelloWorld.vue')['default']}
}
auto-imports.d.ts
/* eslint-disable */
/* prettier-ignore */
// @ts-nocheck
// noinspection JSUnusedGlobalSymbols
// Generated by unplugin-auto-import
export {}
declare global {}

这里直接注释app.vue中组件的引入代码

<script setup lang="ts">
// import HelloWorld from './components/HelloWorld.vue'
</script>

再次运行项目,组件正常显示,因为已经插件自动引入,无需手动页面路径引用

在这里插入图片描述

2、对于d.ts文件进行模块化管理

在这里插入图片描述

vite.config.ts文件进行自动导入路径配置

在这里插入图片描述
再次运行项目,组件正常显示

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • QT界面设计开发(Visual Studio 2019)—学习记录一
  • 全新IM即时通讯软件系统源码/鸽哒IM即时通讯聊天APP源码/安卓、苹果、PC端/全开源
  • Unity搭建简易网络服务端与客户端--基础篇
  • 【Python机器学习】FP-growth算法——FP树:用于编码数据集的有效方式
  • 【区块链+食品安全】海南省市场监管局:进口冷链食品可信追溯平台 | FISCO BCOS应用案例
  • 树和森林的应用场景
  • 时间同步及LVS的安装配置
  • linux信号集
  • WPF窗体动态效果
  • 评价算法(topsis熵权法)
  • language model
  • php收银系统源码(收银pos+聚合支付+ai智能称重+连锁多门店+多商户入驻平台版商城)
  • 【笔记】MSPM0G3507移植RT-Thread——MSPM0G3507与RT_Thread(二)
  • 图书借阅会员员工管理小程序开发
  • Spring事务管理和事务传播机制详解
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • HTML5新特性总结
  • js作用域和this的理解
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • node入门
  • OSS Web直传 (文件图片)
  • text-decoration与color属性
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • VuePress 静态网站生成
  • 工作中总结前端开发流程--vue项目
  • 区块链分支循环
  • 新版博客前端前瞻
  • 带你开发类似Pokemon Go的AR游戏
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​字​节​一​面​
  • #QT(一种朴素的计算器实现方法)
  • #数据结构 笔记三
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (13)DroneCAN 适配器节点(一)
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (floyd+补集) poj 3275
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (九)One-Wire总线-DS18B20
  • (四)js前端开发中设计模式之工厂方法模式
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)fock函数详解
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .net MySql
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • //TODO 注释的作用
  • @RequestBody与@ResponseBody的使用
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [AIGC] MySQL存储引擎详解
  • [c]统计数字