elementui官网?element下载
大家好,今天来为大家分享elementui官网的一些知识点,和element下载的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
在Vue中如何使用elementUI实现自定义主题方法
下面我就为大家分享一篇Vue的elementUI实现自定义主题方法,具有很好的参考价值,希望对大家有所帮助。
使用vue开发项目,用到elementUI,根据官网的写法,我们可以自定义主题来适应我们的项目要求,下面来介绍一下两种方法实现的具体步骤,(可以参考官方文档自定义主题官方文档),先说项目中没有使用scss编写,用主题工具的方法(使用的较多)
第一种方法:使用命令行主题工具
使用vue-cli安装完项目并引入element-ui(具体可参考第二种方法中的介绍)
一、安装工具
1,安装主题工具
npm i element-theme-g2,安装chalk主题,可以从 npm安装或者从 GitHub拉取最新代码
#从 npm
npm i element-theme-chalk-D
#从 GitHub
npm i 二、初始化变量文件
et-i [可以自定义变量文件,默认为element-variables.scss]
>? Generator variables file这时根目录下会产生element-variables.scss(或自定义的文件),大致如下:
$--color-primary:#409EFF!default;
$--color-primary-light-1: mix($--color-white,$--color-primary, 10%)!default;/* 53a8ff*/
$--color-primary-light-2: mix($--color-white,$--color-primary, 20%)!default;/* 66b1ff*/
$--color-primary-light-3: mix($--color-white,$--color-primary, 30%)!default;/* 79bbff*/
$--color-primary-light-4: mix($--color-white,$--color-primary, 40%)!default;/* 8cc5ff*/
$--color-primary-light-5: mix($--color-white,$--color-primary, 50%)!default;/* a0cfff*/
$--color-primary-light-6: mix($--color-white,$--color-primary, 60%)!default;/* b3d8ff*/
$--color-primary-light-7: mix($--color-white,$--color-primary, 70%)!default;/* c6e2ff*/
$--color-primary-light-8: mix($--color-white,$--color-primary, 80%)!default;/* d9ecff*/
$--color-primary-light-9: mix($--color-white,$--color-primary, 90%)!default;/* ecf5ff*/
$--color-success:#67c23a!default;
$--color-warning:#eb9e05!default;
$--color-danger:#fa5555!default;
$--color-info:#878d99!default;
...三、修改变量
直接编辑 element-variables.scss文件,例如修改主题色为自己所需要的颜色(如:紫色(purple))
$--color-primary: purple;四、编译主题
修改完变量后,要编译主题(如果编译后,再次修改了变量,需要重新编译)
et
>? build theme font
>? build element theme五、引入自定义主题
最后一步,将编译好的主题文件引入项目(编译的文件默认在根目录下的theme文件下,也可以通过-o参数指定打包目录),在入口文件main.js中引入
import'../theme/index.css'
import ElementUI from'element-ui'
import Vue from'vue'
Vue.use(ElementUI)在项目中写些样式,看下主题色是否改变:(主题色变为紫色)
<p>
<el-button>默认按钮</el-button>
<el-button type="primary">主要按钮</el-button>
<el-button type="success">成功按钮</el-button>
<el-button type="info">信息按钮</el-button>
<el-button type="warning">警告按钮</el-button>
<el-button type="danger">危险按钮</el-button>
</p>第二种方法:直接修改element样式变量
在项目中直接修改element的样式变量,(前提是你的文档也是使用scss编写)
一、首先用vue-cli安装一个新项目:
1,安装vue:
npm i-g vue2,在项目目录下安装vue-cli:
npm i-g vue-cli3,基于webpack建立新项目( vue-project)
vue init webpack vue-project4,依次输入以下命令行,运行vue-project
cd vue-project
npm i
npm run dev二、安装elementUI以及sass-loader,node-sass(项目中使用scss编写需要依赖的插件)
1,安装element-ui
npm i element-ui-S2,安装sass-loader,node-sass
npm i sass-loader node-sass-D在这里说一下,不需要配置webpack.base.conf.js文件,vue-loader会根据不同类型文件来配置相应loader来打包我们的样式文件(感兴趣的可看下vue-loader的核心代码)
三、改变element样式变量
1.在src下建立element-variables.scss文件(名字可以自定义),写入如下代码:
/*改变主题色变量*/
$--color-primary: teal;
/*改变 icon字体路径变量,必需*/
$--font-path:'../node_modules/element-ui/lib/theme-chalk/fonts';
@import"../node_modules/element-ui/packages/theme-chalk/src/index";2.在入口文件main.js中引入上面的文件即可
import Vue from'vue'
import Element from'element-ui'
import'./element-variables.scss'
Vue.use(Element)看下效果吧,在文件里引入些样式看看,如button
<p>
<el-button>默认按钮</el-button>
<el-button type="primary">主要按钮</el-button>
<el-button type="success">成功按钮</el-button>
<el-button type="info">信息按钮</el-button>
<el-button type="warning">警告按钮</el-button>
<el-button type="danger">危险按钮</el-button>
</p>默认的颜色已经变为我们自定义的了,有其他的改变在element-variable.scss文件中改变变量即可
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
如何使用ngrok+express解决微信接口调试问题
如何使用vue-cli编写vue插件
在vue-cli下使用vuex(详细教程)
Vue3+ElementPlus使用svg加载iconfont的解决方案
ElementUI作为一款优秀的开源组件库,想必很多人都使用过,在Vue3中,我们需要使用ElementPlus。ElementPlus有很多好用的组件,详细用法可直接去查看官方文档:ElementPlus。本文主要介绍如何在Vue3+ElementPlus的项目中,使用自己封装的svg图标。
安装依赖由于我们是Vue3项目,可以使用vite来快速创建一个Vu3项目:
npminstall-gyarnyarncreatevitemy-vue-app--templatevue//这里我们使用vue模板,默认是Javascript语法,如果需要ts语法则需要指定模板为vue-tscdmy-vue-appyarnyarndev
创建好项目后,我们再来引入ElementPlus,安装并引入的过程如下:
安装:
yarnaddelement-plus
完整引入:
//main.js...importElementPlusfrom'element-plus'import'element-plus/dist/index.css'app.use(ElementPlus)
引入后,我们就可以在Vue3项目中使用了:
<template><el-button>按钮</el-button></template>
ElementPlus使用Icon会比ElementUI稍微麻烦点。首先我们需要安装Icon的依赖:
yarnadd@element-plus/icons-vue
我们在main.js中注册所有的图标,当然也可以按需引入图标:
//main.js//全局引入import*asElementPlusIconsVuefrom'@element-plus/icons-vue'...for(const[key,component]ofObject.entries(ElementPlusIconsVue)){app.component(key,component)}
el-icon的使用:
<template><el-icon><Edit/></el-icon></template><scriptsetup>//import{Edit}from'@element-plus/icons-vue'//按需引入,如果已经全局引入了就不需要按需引入</script>
ElementPlus的el-icon使用的是svg,这与ElementUI使用的类名有很大的不同,也就是说我们无法直接在el-icon中使用iconfont的图标。虽然ElementPlus的图标已经能满足大部分场景的需求,但是一些特殊场景只能从iconfont或者自定义的图标上获取。
那么有没有办法将iconfont封装成svg,并给el-icon调用呢?
将iconfont封装成svg可缩放矢量图形(ScalableVectorGraphics),简称SVG,是一种基于XML的,可用于描述二维的矢量图形。SVG可以优雅而简洁的渲染不同大小的图形,并且可以被无限缩放并且保持不失真或者降低质量,这一特性比JPEG、PNG等好用太多。SVG的内容相当多,感兴趣的可以去MDN上查看文档:SVG。我们这里只是简单实用SVG来封装iconfont。
首先我们新建一个SvgIcon.vue的文件,
<template><svg:class="classList"aria-hidden="true"><use:xlink:rel="external nofollow" href="iconName":fill="color"/></svg></template><scriptsetup>import{computed}from'vue';constprops=defineProps({className:{type:String,default:''},iconClass:{type:String,required:true},color:{type:String,default:'#409eff'},size:{type:String,default:'20px'}})constclassList=computed(()=>{return['icon',props.className||'']})consticonName=computed(()=>{return`#${props.iconClass}`})</script><stylescoped>.icon{/*v-bind是Vue3才支持的功能,可以将CSS的值与js的值绑定*/width:v-bind('props.size');height:v-bind('props.size');position:relative;vertical-align:-2px;fill:currentColor;}</style>
这样就将iconfont封装成了svg来调用了,这里我们重点说几个属性:
aria-hidden:默认为false,设置为true表示会把整个元素包括子元素从可访问树(AOM)上移除,但是在DOM树上还是存在的
xlink:href:use元素的属性
v-bind:Vue3的特性,可用于关联CSS和js
fill:如果在动画接收还需要保持动画的值,可用于设置颜色
如何使用使用已经封装好的SvgIcon.vue比较简单,就和正常的组件一样使用即可。例如:
<template><SvgIcon:icon-class="icon-pointer"></SvgIcon></template><scriptsetup>importSvgIconfrom'./SvgIcon.vue'</sript>
如果不想在局部注册组件,也可以注册为全局组件:
//main.jsimportSvgIconfrom'@/SvgIcon.vue'...app.component('SvgIcon',SvgIcon);
作为SVG组件,我们也可以直接使用在el-icon中,这样就可以添加任意iconfont到el-icon中了:
yarnaddelement-plus0
按理说到这里,本篇教程就应该结束了。但是,在使用的过程中,按照正常的方式设置的hover样式不生效,笔者尝试了几种方案,最终放弃hover,采用监听鼠标事件的方式解决。
设置”hover“样式SVG不同于class样式,其无法直接通过修改hover样式来设置鼠标悬浮在图标上面时颜色改变,这个时候我们就需要换一种思路了。我们在SvgIcon.vue中传入了color,并且通过fill将color作用到SVG上,因此我们可以在父组件中修改color的值来实现"hover"效果。
yarnaddelement-plus1
上面的例子中适用于单个SvgIcon,如果是多个的话,就需要进一步改造了:
yarnaddelement-plus2
对比来看,其实也不复杂。
为什么图标颜色无法修改?可能有点朋友按照上述的步骤操作后,发现并不能修改图标颜色,如果不是代码有误,那应该就是导入的iconfont有问题。一般我们会直接在iconfont官网下载图标:
将下载好的压缩包解压后,只复制iconfont.js到项目中即可:
yarnaddelement-plus3
我们来看一下iconfont.js中icon-close1和icon-close的源码:
可以发现,这两个图标最大的差别就是一个有fill,另一个没有,而这就是问题的关键。如果某一个图标的fill不为空,那么作为svg引用时将无法修改填充色。
举个例子:
yarnaddelement-plus4
运行结果:
遇到这个问题应该怎么解决呢,一种方式就是手动删除所有Icon的fill属性,另一个就是在iconfont上面使用批量去色。
批量去色后,我们再次下载图标,并解压后替换掉原来的iconfont.js,再去源码看看就会发现所有图标的fill都没有了,而且也可以修改颜色。
总结本文详细介绍了如何在ElementPlus中使用iconfont,简单的说就是要将其封装成SVG,并且支持动态修改颜色。虽然操作上不难,但是容易踩一些坑,你学会了吗?
原创不易,转载请注明出处
原文:
elementui和elementplus区别
组件库体积大小,组件库更新频率。
1、elementui和elementplus的主要区别在于体积大小:elementui是第一代的组件库,体积相对较大,因为elementui包含了许多不同的组件和功能。而elementplus是elementui的升级版,elementplus体积相对更小,elementplus剔除了一些不常用的组件,同时还新增了一些新的组件和功能。
2、elementplus相对于elementui有更高的更新频率:elementui的代码库相对较大,elementui的维护和更新需要更多的时间和人力。elementplus是在elementui的基础上进行的升级和改进,elementplus代码库相对较小,elementplus可以更快地进行更新和维护。
OK,关于elementui官网和element下载的内容到此结束了,希望对大家有所帮助。