用于标记和选择。
由type
属性来选择tag的类型,也可以通过color
属性来自定义背景色。
render() {
return (
<div>
<Tag>标签一</Tag>
<Tag type="gray">标签二</Tag>
<Tag type="primary">标签三</Tag>
<Tag type="success">标签四</Tag>
<Tag type="warning">标签五</Tag>
<Tag type="danger">标签六</Tag>
</div>
)
}
设置closable
属性来定义一个可移除的标签,接受一个Boolean
,设置为true
即可。默认的标签移除时会附带渐变动画,如果不想使用,可以设置closeTransition
属性,它接受一个Boolean
,true 为关闭。设置close
事件可以处理关闭后的回调函数。
constructor(props) {
super(props);
this.state = {
tags: [
{ key: 1, name: "标签一", type: "" },
{ key: 2, name: "标签二", type: "gray" },
{ key: 5, name: "标签三", type: "primary" },
{ key: 3, name: "标签四", type: "success" },
{ key: 4, name: "标签五", type: "warning" },
{ key: 6, name: "标签六", type: "danger" }
]
}
}
handleClose(tag) {
const { tags } = this.state;
tags.splice(tags.map(el => el.key).indexOf(tag.key), 1);
this.setState({ tag });
}
render() {
return (
<div>
{
this.state.tags.map(tag => {
return (
<Tag
key={tag.key}
closable={true}
type={tag.type}
closeTransition={false}
onClose={this.handleClose.bind(this, tag)}>{tag.name}</Tag>
)
})
}
</div>
)
}
动态编辑标签可以通过点击标签关闭按钮后触发的 onClose
事件来实现
constructor(props) {
super(props);
this.state = {
dynamicTags: ["标签一", "标签二", "标签三"],
inputVisible: false,
inputValue: ""
}
}
onKeyUp(e) {
if (e.keyCode === 13) {
this.handleInputConfirm();
}
}
onChange(value) {
this.setState({ inputValue: value });
}
handleClose(index) {
this.state.dynamicTags.splice(index, 1);
this.forceUpdate();
}
showInput() {
this.setState({ inputVisible: true }, () => {
this.refs.saveTagInput.focus();
});
}
handleInputConfirm() {
let inputValue = this.state.inputValue;
if (inputValue) {
this.state.dynamicTags.push(inputValue);
}
this.state.inputVisible = false;
this.state.inputValue = "";
this.forceUpdate();
}
render() {
return (
<div>
{
this.state.dynamicTags.map((tag, index) => {
return (
<Tag
key={Math.random()}
closable={true}
closeTransition={false}
onClose={this.handleClose.bind(this, index)}>{tag}</Tag>
)
})
}
{
this.state.inputVisible ? (
<Input
className="input-new-tag"
value={this.state.inputValue}
ref="saveTagInput"
size="mini"
onChange={this.onChange.bind(this)}
onKeyUp={this.onKeyUp.bind(this)}
onBlur={this.handleInputConfirm.bind(this)}
/>
) : <Button className="button-new-tag" size="small" onClick={this.showInput.bind(this)}>+ New Tag</Button>
}
</div>
)
}
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
type | 主题 | string | "primary", "gray", "success", "warning", "danger" | — |
closable | 是否可关闭 | boolean | — | false |
closeTransition | 是否禁用关闭时的渐变动画 | boolean | — | false |
hit | 是否有边框描边 | boolean | — | false |
color | 背景色 | string | — | — |
事件名称 | 说明 | 回调参数 |
---|---|---|
onClose | 关闭tag时触发的事件 | — |
通过基础的 24 分栏,迅速简便地创建布局。基础布局使用单一分栏创建基础的栅格布局。通过 Row 和 Col 组件,并通过 Col 组件的 ...
Dropdown 下拉菜单将动作或菜单折叠到下拉菜单中。基础用法移动到下拉菜单上,展开更多操作。通过组件slot来设置下拉触发的元素...
环境支持现代浏览器边缘最后 2 个版本最后 2 个版本最后 2 个版本由于 Vue3 不再支持 IE11,故而 ElementPlus 也不支持 IE11 及...
模态框(Modal)是覆盖在父窗体上的子窗体。通常,使用模态框的目的是用来显示来自一个单独的源的内容,而且可以在不离开父窗体...
ECharts自定义系列属性在上一节的内容中,我们初步认识了ECharts自定义系列,而本节的内容是介绍ECharts自定义系列属性。type在E...
Highcharts 环境配置 本章节我们将为大家介绍如何在网页中使用 Highcharts。 Highcharts 依赖于 jQuery,所以在加载 Highcharts ...
Highcharts 散点图 本章节我们将为大家介绍 Highcharts 的散点图。 我们在前面的章节已经了解了 Highcharts 配置语法。接下来让...
AngularJS 控制器 AngularJS控制器在div内由ng-controller 指令定义。AngularJS 控制器 控制 AngularJS 应用程序的数据。 Angula...
模板连接和图像在这一步中,你将为手机列表中的手机添加一个缩略图,并链接到想去的地方。在后续的步骤中,你将使用这个链接显示...