ElementUI 标签组件

官方地址

https://element.eleme.io/#/zh-CN/component/tag

基本用法

<el-tag>标签一</el-tag>

<el-tag>标签一</el-tag>

边框描边

边框描边由hit属性指定

 <h1>边框描边</h1>
 <el-tag :hit="true">有边框描边</el-tag>
 <el-tag :hit="false">无边框描边</el-tag>

情境色

情境色由type属性指定,做了两件事:

  1. 背景色
  2. 边框
  • success
  • info
  • warning
  • danger
 <h1>情境色</h1>
 <el-tag type="success">标签一</el-tag>
 <el-tag type="info">标签二</el-tag>
 <el-tag type="warning">标签三</el-tag>
 <el-tag type="danger">标签四</el-tag>

主题

主题由effect属性指定

  • dark
  • light
  • plain
 <h1>主题</h1>
 <el-tag type="success" effect="dark">标签一</el-tag>
 <el-tag type="warning" effect="light">标签二</el-tag>
 <el-tag type="danger" effect="plain">标签三</el-tag>

自定义背景颜色

背景颜色可以由color属性自行指定,但不会覆盖type的边框色

 <h1>自定义背景颜色</h1>
 <h2>color覆盖type的背景色,但不会覆盖type的边框色</h2>
 <el-tag color="pink" effect="dark" type="success">标签一</el-tag>
 <el-tag color="red" effect="light" type="warning">标签二</el-tag>
 <el-tag color="green" effect="plain" type="danger">标签三</el-tag>

尺寸

尺寸由size属性指定

  • medium
  • small
  • mini
 <h1>尺寸</h1>
 <el-tag effect="light" type="success">正常</el-tag>
 <el-tag effect="light" type="success" size="medium">Medium</el-tag>
 <el-tag effect="light" type="success" size="small">Small</el-tag>
 <el-tag effect="light" type="success" size="mini">Mini</el-tag>

可关闭的标签

  1. closable是显示关闭按钮
  2. 真正关闭还是要结合close事件
  3. 其中disable-transitions属性可以指定是否禁用渐变动画

方式一

v-if

 <p>
 	<el-tag v-if="isShow" closable @close="handleClose" :disable-transitions="false">标签一</el-tag>
 </p>
handleClose() {
	
	// 第一种方法
	this.isShow = false;
	
},

方式二

dom

 <p>
 
	<el-tag closable @close="handleClose2" :disable-transitions="false">标签二</el-tag>
 
 </p>
handleClose2() {
	
	// 第二种方法
	console.log(event);
	
	console.log(event.path[1]);
	
	event.path[1].style.display = 'none';
	
},

方式三

v-for

  <el-tag 
  closable 
  @close="handleClose3(index)" 
  :disable-transitions="false" 
  v-for="(tag, index) in dynamicTags"
  :key="index"
  >{{tag}}</el-tag>
<script>
export default {
	data() {
		return {
			dynamicTags: ['标签一', '标签二', '标签三'],
		}
	},
	methods: {
		handleClose4(tag) {
			
			this.dynamicTags2.splice(this.dynamicTags2.indexOf(tag), 1);
		
		},
	}
}
</script>

click点击事件

 <h1>click事件</h1>
 
 <p>
 
<el-tag @click="handleClick">Click事件</el-tag>
 
 </p>
handleClick() {
	
	console.log('点我啦');
	
},

动态生成标签

<el-tag
  :key="tag"
  v-for="tag in dynamicTags2"
  closable
  :disable-transitions="false"
  @close="handleClose4(tag)">
  {{tag}}
</el-tag>
 

 
<el-input 
class="input-new-tag"
size="small"
ref="saveTagInput"
v-model="inputValue"
v-if="inputVisible"
@keyup.enter.native="handleInputConfirm"
@blur="handleInputConfirm">
</el-input>

<el-button class="button-new-tag" v-else @click="showInput" size="small">+ New Tag</el-button>
<script>
	export default {
		data() {
			return {
				dynamicTags2: ['标签一', '标签二', '标签三'],
				inputVisible: false,
				inputValue: '',
			}
		},
		methods: {
			handleClose4(tag) {
				
				this.dynamicTags2.splice(this.dynamicTags2.indexOf(tag), 1);
			
			},
			
			showInput() {
				
				this.inputVisible = true;
				this.$nextTick(_ => {
					
					this.$refs.saveTagInput.$refs.input.focus();
					
				})
				
			},
			
			handleInputConfirm() {
				
				let inputVal = this.inputValue;
				if (inputVal) {
					
					this.dynamicTags2.push(inputVal)
					
				}
				
				this.inputValue = '';
				this.inputVisible = false;
				
			},

		}

}

</script>

属性

参数说明类型可选值默认值
type类型stringsuccess/info/warning/danger
closable是否可关闭booleanfalse
disable-transitions是否禁用渐变动画booleanfalse
hit是否有边框描边booleanfalse
color背景色string
size尺寸stringmedium / small / mini
effect主题stringdark / light / plainlight

事件

事件名称说明回调参数
click点击 Tag 时触发的事件
close关闭 Tag 时触发的事件
Element UI是一个基于Vue.js的开源UI组件库,它提供了丰富的现成组件和易于定制的功能,使得开发者能够快速构建企业级的前端应用。如果你想在Element UI中自定义组件,你可以按照以下步骤操作: 1. **了解组件结构**:Element UI组件通常由模板(HTML)、样式(CSS)以及可选的行为逻辑(JavaScript)组成。熟悉这些基本组成部分是关键。 2. **创建`mixins`或`components`**:你可以创建自己的`mixins`来复用通用功能,或者直接创建一个新的Vue组件,继承自Element UI的基础组件(如`el-button`),并添加或修改你需要的属性和行为。 ```js // 示例代码 import { ElButton } from 'element-ui'; export default { extends: ElButton, props: { customProp: { type: String, required: false, default: '' } }, // 可能会覆盖原型方法,比如点击事件处理等 methods: { handleClick() { console.log('Custom handler:', this.customProp); } } }; ``` 3. **注册组件**:在Vue实例中注册你的自定义组件以便在模板中使用。如果是全局注册,可以在项目的main.js中做;如果只是为了某个特定页面,可以在该页面的组件内或生命周期钩子中注册。 4. **在模板中使用**:现在你可以在`<template>`标签中像使用原生Element UI组件一样使用你的自定义组件了,并可以通过传入props来传递额外的数据。 ```html <custom-button @click="handleClick" :custom-prop="'Custom Text'"></custom-button> ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值