ElementUI 的使用及自定义设置

什么是 ElementUI

官网介绍:Element,一套为开发者,设计师和产品经理准备的基于Vue 2.0的桌面端组件库

在开发的过程中,很多时候有很多的部分是可以被公共的时候,例如导航,底部的选项卡(手机web app)我们可以自己去开发,也可以使用第三方公司专门开发的这些组件库(UI组件库),ElementUI 就是其中的一种,还有几个比较好的:

  • 1: MintUI (饿了么前端团队为M站项目开发的)
    http://mint-ui.github.io/docs/#/zh-cn2/radio

  • 2: Iview (个人爱好者开发的一个组件库)
    https://www.iviewui.com/components/rate

  • 3: vant (有赞公司开发的,有赞商城)
    https://youzan.github.io/vant-weapp/#/area

如何使用 ElementUI

1:在 vue-cli 创建的项目里安装 element-ui (推荐使用npm的方式安装,它能更好地和webpack打包工具配合使用。)
npm install element-ui
2:在 main.js 文件中写入如下代码
import ElementUI from 'element-ui' //引入相关的组件(一般我门将第三方组件称为插件)
import 'element-ui/lib/theme-chalk/index.css' //组建的样式

Vue.use(ElementUI) //安装插件,然后我们就可以使用了
然后我们只需要把官网上我们需要的代码拿过来就好了

我们用一下,我在 about.vue 组件中加上从官网上拿来的代码(一个折叠面板)

<template>
  <div class="about">
  //从官网上复制过来的
    <el-collapse v-model="activeNames" @change="handleChange">
      <el-collapse-item title="一致性 Consistency" name="1">
        <div>与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;</div>
        <div>在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。</div>
      </el-collapse-item>
      <el-collapse-item title="反馈 Feedback" name="2">
        <div>控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;</div>
        <div>页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。</div>
      </el-collapse-item>
      <el-collapse-item title="效率 Efficiency" name="3">
        <div>简化流程:设计简洁直观的操作流程;</div>
        <div>清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;</div>
        <div>帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。</div>
      </el-collapse-item>
      <el-collapse-item title="可控 Controllability" name="4">
        <div>用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;</div>
        <div>结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。</div>
      </el-collapse-item>
    </el-collapse>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        activeNames: ['1']
      };
    },
    methods: {
      handleChange(val) {
        console.log(val);
      }
    }
  }
</script>

运行一下,我们就能看到效果(它和 bootstrap类似)
在这里插入图片描述

实现 ElementUI 组件的按需加载

什么是按需加载和全局加载

全局加载:默认情况,ElementUI 的组件的加载方式使用的是全局加载,就是我们在使用 Vue.use(ElementUI) (Vue.prototype.components= { })安装这个组件的时候,默认情况下,是把ElementUI的所有的组件全部进行注册,然后可以在任何地方使用提供的组件
按需加载:需要什么就引入什么组件
很少有一个项目会使用到ElementUI的所有的组件,我们做的项目一般只需要使用一部分的ElementUI的组件,则我们更应该是做组件的按需加载

按需加载的实现方式

1:需要安装一个第三方的 loader(做代码的转换操作)

yarn add babel-plugin-component

2:修改babel.config.js 文件

module.exports = {
  presets: [
    '@vue/cli-plugin-babel/preset',
    ["es2015", { "modules": false }]
  ],
  "plugins": [
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "theme-chalk"
      }
    ]
  ]
}

3:根据需要注册自己需要的组件
如我要引入 Button 和 Select ,我们只主需要注册这两个组件即可

import { Button, Select } from 'element-ui';

Vue.component(Button.name, Button);
Vue.component(Select.name, Select);

/* 或写为
 * Vue.use(Button)
 * Vue.use(Select)
 */

4:在需要的地方写代码

 <el-row>
      <el-button round>圆角按钮</el-button>
      <el-button type="primary" round>主要按钮</el-button>
      <el-button type="success" round>成功按钮</el-button>
      <el-button type="info" round>信息按钮</el-button>
      <el-button type="warning" round>警告按钮</el-button>
      <el-button type="danger" round>危险按钮</el-button>
    </el-row>

就能看到效果
在这里插入图片描述

ElementUI 主题色的设置

ElementUI 默认情况下,使用了一套颜色来显示相关的组件,例如 使用 primary 就是蓝色, success 就是绿色,使用一种语义化的方式去描述相关的颜色,一般情况下来说,官方提供的颜色就可以满足绝大部分项目的需求,但是有的时候公司不太喜欢默认的颜色,希望自己去更改一下ElementUI的颜色。则ElementUI提供修改颜色的机会,一般我们把这些颜色也叫作主题

修改方式一:主题编辑器

提供web版本的界面,让用户去配置自己喜欢的主题色,然后进行下载一个 css 文件,然后在自己项目导入即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
将下载好的文件放到 src 下,然后引入就行
在这里插入图片描述

修改方式一:命令行工具

1:安装主题生成工具

npm i element-theme -g

2:下载主题

npm i element-theme-chalk

3:初始化变量文件 element-variables.scss

et -i

4:在文件(element-variables.scss)里修改变量
5:编译

et

6:导入 index.css 文件

ElementUI 的国际化

国际化指的就是做的项目可以在多个国家使用(根据每个国家对应的语言,显示与之对应的语言信息)一般把这种项目叫做 i18n 项目

i18n 是什么?

国际化( internationalization 这个单词存在 18 个字符,取其首位则为 i18n )

1:完整引入

import ElementUI from 'element-ui'
import locale from 'element-ui/lib/locale/lang/en'

Vue.use(ElementUI, { locale })

1:按需引入

import Vue from 'vue'
import { Button, Select } from 'element-ui'
import lang from 'element-ui/lib/locale/lang/en'
import locale from 'element-ui/lib/locale'

// 设置语言
locale.use(lang)

// 引入组件
Vue.component(Button.name, Button)
Vue.component(Select.name, Select)

在这里插入图片描述

### ElementUI 轮播图自定义指针实现方法 在ElementUI中,可以通过修改`el-carousel`组件的相关属性来自定义轮播图的指示器样式。通过设置`indicator-position="none"`可以隐藏默认的指示器,之后利用插槽(slot)机制创建自定义指示器。 对于更精细控制,可使用具名slot `prev` 和 `next` 来定制前后按钮,并借助于事件监听来同步当前显示图片索引与自定义指示器状态[^1]。 下面是一个简单的例子展示如何实现这一功能: ```html <template> <div class="custom-indicator"> <!-- 设置 indicator-position 属性为 none 隐藏默认指示 --> <el-carousel :interval="4000" type="card" height="200px" @change="handleSlideChange" ref="carouselRef" indicator-position="none"> <el-carousel-item v-for="(item,index) in items" :key="index"> <img :src="item.src"/> </el-carousel-item> </el-carousel> <!-- 自定义指示器区域 --> <ul class="custom-dots"> <li v-for="(dot, idx) in items.length" :key="idx" :class="{active: currentIndex === idx}" @click="selectIndex(idx)"> {{ idx + 1 }} </li> </ul> </div> </template> <script setup lang="ts"> import {ref} from 'vue'; const carouselRef = ref(null); let currentIndex = ref(0); // 模拟数据源 const items = [ {'src': '/path/to/image1.jpg'}, {'src': '/path/to/image2.jpg'} ]; function handleSlideChange(index:number){ currentIndex.value = index; } function selectIndex(index:number){ currentIndex.value = index; (carouselRef.value as any).setActiveItem(index); // 切换到指定项 } </script> <style scoped> .custom-dots li { display: inline-block; margin-right: 5px; cursor: pointer; } .custom-dots .active { color: red; /* 当前选中的颜色 */ } </style> ``` 此代码片段展示了如何移除原有指示器并引入一组新的、完全可控的指示符。每当用户点击其中一个新指示符时,都会触发相应的方法更新视图上的活动幻灯片位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值